驯服 Tiger: 虚拟机更新
2009-11-04 00:00:00 来源:WEB开发网在驯服 Tiger 的这一期中,John Zukowski 介绍了最新的 Java 虚拟机如何改善启动时间、降低内存需求、提高性能。Tiger 提供了共享的数据档案文件、新的线程调度算法以及致命错误处理器(用来处理故障)。请在本文附带的 讨论论坛 上与作者和其他读者分享您对本文的想法。(也可以单击本文顶部或底部的 讨论 访问讨论论坛。)
致命错误处理器
JVM 包含几个新的命令行选项。其中一个不太标准的选项是“致命错误处理器”。用 -XX:OnError 选项启动 JVM,可以指定在发生错误和 JVM 有故障时要执行的命令。清单 1 显示了几个这样的选项:
清单 1. 一些 OnError 处理选项 -XX:OnError="gcore %p; dbx - %p"
-XX:OnError="gdb %p"
-XX:OnError="pmap %p"
JVM 中发生致命错误时,就会执行引号中的命令。%p 选项用进程 ID 替换。想故意制造些错误并不容易,但是如果偶然发现某种情况确实重复发生,那么通过处理器得到的信息是极有帮助的。
OnError 选项使用 Java 调试接口(Java Debug Interface,JDI) 服务性代理连接器桥(serviceability agent connector bridge)。有了这个桥,就能够连接核心文件或者已经安装的虚拟机,以及其他任务。如下所示,随 JDK 提供了几个诊断工具,它们利用了这个桥,但是最后三个工具在 Microsoft Windows 平台上不能用:
jps —— 得到进程 ID
jstat —— 得到进程 ID 的统计值(jstat -gc pid)
jinfo —— 得到 JVM 的配置信息
jmap —— 打印库的内存映射
更多精彩
赞助商链接