不适当的JVM参数设置往往会导致我们的java应用出现故障或者性能问题,下面简述了几点优化方向。
减少GC时间
-
调整内存设置控制垃圾收集频率
通过分析出现Full GC的原因适当调整各类型堆空间容量。
-
选择合适的收集器降低延迟
根据应用使用场景选择最合理的垃圾收集器。可以参考JVM技术点速记 | 垃圾收集与内存分配。
升级JDK版本
JDK每一代新的版本都有一定量的性能提升,如果为了追求性能应该选择力所能及的JDK版本并且关注代码兼容性。
代码优化
这个可以优化或者可能导致性能问题的地方太多了,这里先列举几点。
- 不恰当的
System.gc()
调用。 - 不恰当的数据结构使用降低了空间利用率。
编译时间优和类加载时间的优化
-
禁止字节码验证
如果你的代码是经过测试的稳定版本,可以通过禁止类型验证器来降低启动时间,通过参数
-Xverify:none
-
使用服务端模式
使用重量级的服务端及时编译器可以带来性能提升,但是会降低程序启动速度。