首页 > 编程语言 >读Java性能权威指南(第2版)笔记01_导言

读Java性能权威指南(第2版)笔记01_导言

时间:2023-02-25 09:44:56浏览次数:32  
标签:4.7 01 4.1 JVM 4.3 性能 FlagName 导言 Java

1. JVM调优标志

1.1. 布尔标志和附带参数的标志

1.2. 布尔标志使用的语法

1.2.1. -XX:+FlagName表示开启

1.2.2. -XX:-FlagName表示关闭

1.3. 附带参数的标志使用的语法

1.3.1. -XX:FlagName=something,表示设置FlagName的值为something

2. 多核硬件

2.1. 超线程是Intel常用的术语

2.2. AMD(和其他厂商)则使用同时多线程

2.3. 一些芯片制造商称之为核心内的硬件线程(hardware strands within a core)

2.4. 垃圾回收很大程度上是CPU密集型任务

3. 软件容器

3.1. 虚拟机

3.1.1. 在运行的硬件子集上建立了完全隔离的操作系统副本

3.2. Docker

3.2.1. 只是操作系统中的一个进程(可能受资源限制)

3.2.2. Java有丰富的性能问题诊断工具集,而Docker容器里没有

3.2.3. 在Docker中以小数形式限制CPU数量,Java会对小数向上取整

4. 全面的性能

4.1. 通用的准则

4.1.1. 给已经过载的系统增加负载,系统的性能会变差

4.1.2. 给系统中低效的部分增加负载会让整个系统变慢

4.1.2.1. 将负载添加到CPU密集型服务器上

4.1.2.2. 让更多线程去获取已经有线程等待的锁

4.2. 写出更好的算法

4.2.1. 好的算法对于提升性能是至关重要的

4.2.1.1. 没有可行的优化方式,能让基于数组的代码和使用哈希映射(hash map)一样快

4.3. 写更少的代码

4.3.1. 定期的性能测试可以找出性能下降的原因

4.3.2. 每个应用程序的性能都会随着时间下降

4.3.2.1. 随着应用程序新版本的发布而下降

4.3.3. 添加新特性和使用新标准只会导致应用程序越来越大、越来越慢

4.4. 过早优化

4.5. 数据库永远是瓶颈

4.6. 测试工具也是最有可能出问题的

4.7. 常见优化

4.7.1. 通过分析来优化代码,并专注于优化其中最耗时的操作

4.7.2. 使用奥卡姆剃刀原理来诊断性能问题

4.7.2.1. 新增代码的bug比机器配置更有可能带来性能问题

4.7.2.2. 机器配置比JVM和操作系统的bug更有可能带来性能问题

4.7.3. 为应用程序的常见操作提供简单的算法

4.8. JVM只是整体性能的一小部分

4.9. 数据库和其他后端系统的性能同JVM一样重要

标签:4.7,01,4.1,JVM,4.3,性能,FlagName,导言,Java
From: https://www.cnblogs.com/lying7/p/17152739.html

相关文章

  • 题解 LOJ P2393 「JOISC 2017 Day 2」门票安排
    题意咕咕咕。题解这题太神了,无限膜拜p_b_p_b,搬运一波题解。首先考虑二分。题意等价于选一些区间进行反转。首先注意到反转的区间两两有交,不然不反转一定更优。设反转......
  • 【Java】ArrayList线程不安全的坑
    问题复现:使用Java的steam().paralleStream(),foreach()方法向ArrayList添加数据,导致ArrayList中出现空值,代码如下:publicstaticvoidmain(String[]args){......
  • error:0308010C:digital envelope routines::unsupported
    Node.jsv18.14.1运行项目node:internal/crypto/hash:71this[kHandle]=new_Hash(algorithm,xofLen);^Error:error:0308010C:digitalenve......
  • java调用chatgpt api
    前提:要有chatgpt账号,不会注册的关注抖音:21402780125,有免费教程!!要在Java中调用ChatGPTAPI,您可以使用以下步骤:首先,在您的Java项目中添加相关的HTTP客户端库,例如......
  • Java多线程面试题:描述一下线程安全活跃态问题,竞态条件?
    一、线程安全活跃态问题线程因为某件事情得不到执行1、活锁线程没有阻塞,但一直重复执行某个操作,并且失败重试1)例子在消息队列中,消费者没有正确a......
  • JAVA保姆式上手教程之入门精通案例
    事务课程目标1、什么是事务2、jdbc如何控制事务3、设置事务的回滚点4、事务的特性ACID5、数据库事务的隔高级别事务理解什么是事务:指逻辑上一组操作,要么同时成功......
  • java中的栈和队列
    一、队列的简单介绍队列是一种遵循先进先出原则的数据结构,一般会有一个对头和一个对尾,只能在对头取出元素,在队尾添加元素。在上边的图中元素4最先进入队列,所以元素4最......
  • Java的安装开发环境
    Java的安装开发环境卸载JDK删除Java的安装目录删除JAVA_HOME删除path下关于Java的目录查看Java-version安装JDK搜索JDK11,找到下载地址同意协议......
  • 路飞项目day01
    企业项目类型软件开发流程pip永久换源虚拟环境路飞项目前后端创建包导入后端项目调整目录#技术类博客-cnblogs-csdn(不推荐)-掘金......
  • THUPC2019 令人难以忘记的题目名称 题解
    首先感性感觉这个东西是比较有循环节的,但这是后话。最后几步一定是差分相同->每个数相同->全为0。不平凡地猜想差分\(k\)次全\(0\)等价于可以\(k\)步胜利。假设......