读JVM相关的一些笔记

时间:2023-01-22 10:28:22

1、JVM的运行模式

vm一般有两种运行模式,client和server(JDK 7 后有第三种 Tiered server,后续会涉及到)。

  • client : 启动快,内存占用少,JIT编译器生成代码的速度也更快。
  • Server:提供了更为复杂的生成代码优化功能,这个功能对于服务器应用来说更为重要,大多数Server模式的JIT编译优化都要消耗额外的时间用以收集更多的应用程序行为信息,为应用程序运行生成更为优化的代码。
  • 在JDK7 开始,提供了一种Tiered Server模式,结合了上面两种的长处,即快速启动并且能够高效生成代码。可以通过:-server -XX:+TieredCompilation 命令选项启用。

2、JVM 32还是64位的选择

原则是由应用程序的内存占用来决定,有如下原则可以参考:

OS java堆大小 32位还是64位JVM
win <1300M 32位JVM
win 1300M<x<32G 使用-d64 -XX:+UseCompressedOops 启用64位JVM
win >32G 使用-d64  启用64位JVM
linux <2G 32位JVM
linux 2G<x<32G 64位
linux >32G 64位
solaris <3G 32位
solaris 3G<x<32G 64位
solaris >32G 64位