教你JAVA性能调优的方向?

发布时间:2023-07-22 19:30

JVM参数及调优

调优基本概念

在调整性能时,JVM有三个组件:

  1. 堆大小调整
  2. 垃圾收集器调整
  3. JIT编译器

大多数调优选项与调整堆大小和为您的情况选择最合适的垃圾收集器有关。
JIT编译器对性能也有很大影响,但是很少需要使用较新版本的JVM进行调优。

通常,在调优JAVA应用程序是,重点是以下两个主要目标之一:

  1. 响应性:应用程序或系统对请求的数据进行响应的速度,对于专注于响应的应用程序,长的暂停时间是不可接受的,重点是在短时间内做出回应。
  2. 吞吐量:侧重于在特定时间段内最大化应用程序的工作量,对于专注于吞吐量的应用程序,高暂停时间是可接受的。由于高吞吐量应用程序在较长时间内专注于基准测试,因此不需要考虑快速响应的时间。

系统瓶颈核心还是在应用代码,一般情况下无需过多的调优,JVM本身在不断的优化。

常用的JVM参数

\"教你JAVA性能调优的方向?_第1张图片\"

GC调优思路

  1. 分析场景 -例如:启动速度慢;偶尔出现响应慢于平均水平或者出现卡顿
  2. 确定目标 -内存占用,低延迟,吞吐量
  3. 收集日志 -通过参数配置收集GC日志;通过JDK工具查看GC状态
  4. 分析日志 -使用工具辅助分析日志,查看GC次数,GC时间
  5. 调整参数 -切换垃圾收集器或者调整垃圾收集器参数

通用GC参数

\"教你JAVA性能调优的方向?_第2张图片\"

垃圾收集器Parallel 参数调优

\"教你JAVA性能调优的方向?_第3张图片\"

垃圾收集器CMS参数调优

\"教你JAVA性能调优的方向?_第4张图片\"

垃圾收集器G1参数调优

\"教你JAVA性能调优的方向?_第5张图片\"

运行时JIT编译器优化参数

\"教你JAVA性能调优的方向?_第6张图片\"

备注:很少需要对较新版本的JVM进行JIT调优

Tomcat 网络处理线程模型

BIO+同步Servlet

\"教你JAVA性能调优的方向?_第7张图片\"

ARP+异步Servlet

\"教你JAVA性能调优的方向?_第8张图片\"

NIO+异步Servlet

\"教你JAVA性能调优的方向?_第9张图片\"

NIO处理流程

\"教你JAVA性能调优的方向?_第10张图片\"

Tomcat 参数调优

\"教你JAVA性能调优的方向?_第11张图片\"

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号