网站首页 > 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一样重要
猜你喜欢
- 2024-10-11 SpringBoot整合Nacos配置中心加载原理二
- 2024-10-11 Java核心修饰符——abstract修饰符与抽象类、抽象方法
- 2024-10-11 绝对的JAVA面试干货(java juc 面试)
- 2024-10-11 Java面试集合(三)-1(基础篇java集合面试专用)
- 2024-10-11 Java之路-10 API、Scanner类、Random类、Math类
- 2024-10-11 JAVA面试基础知识点(java面试必背)
- 2024-10-11 java面试题及答案2022,java2022最新面试题及答案
- 2024-10-11 java向上转型和向下转型(java向上转型调用的是子类还是父类属性)
- 2024-10-11 「Java基础11」常用API(java基础知识点整理汇总)
- 2024-10-11 java基础总结(java基础总结心得)
你 发表评论:
欢迎- 最近发表
-
- 你真的会用 Java 中的线程池吗?多个企业级线程池工具类封装实践
- 线程池的实现原理、优点与风险、以及四种线程池实现
- Java线程池ThreadPoolExecutor实现原理剖析
- 深入分析线程池的实现原理(线程池是干嘛的)
- 一文搞懂JAVA线程池工作原理(java线程池的工作流程)
- Java线程池的工作原理(java线程池的实现原理)
- 5分钟读懂C#中TcpClient、TcpListener和Socket三个类的角色
- JVM对象的创建过程(jvm运行过程中创建的对象一般存放在方法区)
- 对象组成与Java内存模型JMM分析(java对象在内存中存储的结构)
- JVM对象内存分配详细过程(栈上分配->TLAB->老年代->Eden区)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)