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 虚拟

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