一、JVM优化
1、Stop-The-World机制:简称STW,是在执行垃圾收集算法时,Java应用程序的其它所有线程都被挂起(除了垃圾收集帮助器之外)。Java中的一种全局暂停现象,全局停顿,所有Java代码停止,native代码可以执行,但不能与JVM交互,这些现象多半是由于gc引起的。
2、Linux调优
jps -1m
jstat -gccause pid 3s 300
3、JVM参数:初始堆内存和最大堆内存设置为相同可以减少堆内存调整带来的性能开销。当内存不够时,会先执行GC操作,只有当GC操作无法释放更多内存时,才会进行扩充。GC操作是需要耗时的,Full GC会引起STW。
-XX:+UseG1Gc
-Xmx:4g
-Xmx:4g
-Xmn:2g
-XX:MaxNewsize
-XX:SurvivorRatio Eden Survivor
-XX:MetaspaceSize
-XX:MaxMetaspaceSize
4、G1调优
将进入老年代的对象减少到最低
yonung GC:40ms内
major gc:STW时间总和100ms内
full gc:尽可能少,时间1s内
除了cms和G1外,其余的major gc=full gc
二、打印日志优化
if(log.isDubugEnable()){}
三、异步MQ优化
核心逻辑=》非核心逻辑
核心逻辑=》RocketMQ=》非核心逻辑
四、DB优化
查询加索引
单次操作改为批量操作
五、使用高效的数据结构、算法
布隆过滤器减少无效查询
六、池化技术
对象池、线程池、连接池
七、缓存
本地缓存:Caffenine
分布式缓存:Redis
八、中间件优化
升级JDK17D带来的GC性能优化