Sun 的 JVM 有两种风格:-client
and -server
,其中服务器 VM 应针对长时间运行的进程进行优化,建议用于服务器应用程序。
当我跑步时java
如果没有参数,它会显示使用选项,其中包括以下文本:
The default VM is server,
because you are running on a server-class machine.
看到这个后,我懒得添加-server
到进程启动命令。
然而,在最近的 JVM 崩溃日志中,我注意到文件末尾附近有以下行:
vm_info: Java HotSpot(TM) Client VM (14.0-b16) for linux-x86 JRE (1.6.0_14-b08), built on May 21 2009 02:01:47 by "java_re" with gcc 3.2.1-7a (J2SE release)
在我看来,Java 正在使用客户端虚拟机,尽管帮助消息中是这么说的。我要添加-server
我的启动命令的选项,但现在我很怀疑。所以我的问题是:有没有办法确保我运行的虚拟机确实是服务器虚拟机,而不需要强制 JVM 崩溃?
操作系统是ubuntu 8.04,但我使用的是从Sun网站下载的JDK 1.6.0_14。
你可以做
System.out.println(System.getProperty("java.vm.name"));
在我的机器上返回:
Java HotSpot(TM) 客户端虚拟机
or
Java HotSpot(TM) 64 位服务器虚拟机
当然,您不应该根据这个值做任何重要的事情,因为它将来可能会发生变化,并且在另一个 JVM 上会完全不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)