(1)调优领域
- 内存
 - 锁竞争
 - cpu占用
 - io
 
(2) 调优目标
- 高吞吐量(科***算):ParrellelGC
 - 还是低延迟(互联网项目):CMS、G1、ZGC
 - hotspot外的虚拟机:zing...
 
(3) 代码复核
查看full gc前后的内存占用,考虑以下几个问题。
- 数据量是不是太多?下面代码就会加载大量数据到堆内存中。
 
resultSet = statement.executeQuery("select * from xxx");
应该改为:
resultSet = statement.executeQuery("select * from xxx limit n");
- 数据表示太臃肿?
- 对象用到什么数据项查什么数据项
 - 对象大小 Integer24byte ,int24byte
 
 - 是否存在内存泄漏?如:
 
static Map map = new HashMap();
对长期存活的对象建议使用弱引用、软引用。
对于缓存类型的数据建议使用第三方缓存实现,如redis。

京公网安备 11010502036488号