WEB开发网
开发学院软件开发Java 驯服 Tiger: 虚拟机更新 阅读

驯服 Tiger: 虚拟机更新

 2009-11-04 00:00:00 来源:WEB开发网   
核心提示: jstack pid | core —— 生成堆栈跟踪类数据共享为了帮助改善启动时间,JVM 现在和内存映射文件一起工作,驯服 Tiger: 虚拟机更新(2),这些文件在安装时创建,保存着系统类的内部表示方式,就必须删除它,请用 -Xshare:dump 命令行开关调用

jstack pid | core —— 生成堆栈跟踪

类数据共享

为了帮助改善启动时间,JVM 现在和内存映射文件一起工作。这些文件在安装时创建,保存着系统类的内部表示方式。这样,在启动 JVM 时,就不会从头开始装入系统类,而是装入内存映射文件。这在两个方面提供了帮助。首先,差不多有一半内存映射文件是只读的,这意味着可以在多个并发运行的进程之间共享它们,从而在相当程度上减少了启动时间和需要的全部内存。其次,由于这些文件采用了 Java HotSpot 虚拟机能够使用的格式,所以永远不会发生需要内存来处理原始类文件的情况,这也改善了启动时间。

共享档案文件的位置依赖于平台。文件命名为 classes.jsa,其中 JSA 扩展代表 Java 共享档案(Java Shared Archive)。在 Microsoft Windows 平台上,可以在 jre\bin\client 中找到共享档案。在 Linux 平台上,位置是 jre/lib/[arch]/client。所有这些位置都基于 JAVA_HOME 根。

如果不喜欢这个文件,可以删除它。实际上,如果想重新生成这个文件,就必须删除它。请用 -Xshare:dump 命令行开关调用 java 命令来生成它。在执行的时候,可以得到类似清单 2 所示的输出 :


清单 2. 重新生成共享数据文件的命令输出
 Loading classes to share ... done. 
 Rewriting and unlinking classes ... done. 
 Calculating hash values for String objects .. done. 
 Calculating fingerprints ... done. 
 Removing unshareable information ... done. 
 Moving most read-only objects to shared space at 0x2aad0000 ... done. 
 Moving common symbols to shared space at 0x2ae2e848 ... done. 
 Moving remaining symbols to shared space at 0x2af51148 ... done. 
 Moving string char arrays to shared space at 0x2af51bd8 ... done. 
 Moving additional symbols to shared space at 0x2afd2ef0 ... done. 
 Read-only space ends at 0x2b027960, 5601632 bytes. 
 Moving read-write objects to shared space at 0x2b2d0000 ... done. 
 Moving String objects to shared space at 0x2b825be8 ... done. 
 Read-write space ends at 0x2b8643a8, 5850024 bytes. 
 Updating references to shared objects ... done. 

Tags:驯服 Tiger 虚拟

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接