Java SE 6性能白皮书 - 编程入门网
n),然后把它取回来。
已经实现了把来自年轻代的对象复制到在并行清除收集器中的年老代的可选命令。该项功能的意图是降低错过在年老代已经被访问的对象这类缓存错失次数。默认启用该项功能。要禁用该功能,请向命令行添加 -XX:-UseDepthFirstScavengeOrder。 在 x86 平台上默认的年轻代的大小已经增加到 1MB。 系统已经增加了并发标记清除收集器年轻代(Young Generation)的默认大小。 最小年轻代大小从 4MB 增加到 16MB。 针对年轻代的全部堆比例从 1/15 增加到 1/7。 目前,并行标记清除(CMS)收集器默认使用生存空间,且其默认大小也有增加。 这些变化的主要影响是通过减少垃圾收集开销来提高应用程序性能。但是,由于默认年轻代的大小比较大,应用程序也可能看到更大的年轻代停顿时间和更大内存占用量。 2.4 客户端性能增加 2.4.1 类数据共享中的新类列表 要减少应用程序的启动时间和内存占用量, Java SE 5.0 引入了一个称作“类数据共享(Class Data Sharing,CDS)”的功能。在 32 位平台上,这种机制按如下方式工作: Sun 提供了一个安装程序,从系统 jar(jar 文件包含所有 Java 类库,称作 rt.jar)文件中加载类集合到一个专有内部表示法,并将该表示法转储到一个称作“共享归档”的文件中。关于后续的 JVM 调用,共享归档是内存映射输入的,从而节省了加载这些类的开销,并允许许多 Java 虚拟机的元数据用于在被多个 JVM 进程之间共享的这些类。 在 Java SE 6.0中,在“共享归档”中的类列表已经被更新,以便更好反映对系统 jar 文件的更改。 Java SE 6性能白皮书(5)时间:2011-01-052.4.2 引导类加载器的性能改进 已经增强了Java 虚拟机的引导(boot)和扩展(extension)类加载器性能以便改进 Java 应用程序的冷启动时间。在 Java SE 6 之前,打开系统 jar 文件引发 Java 虚拟机要读取一个 1 MB 大小的 ZIP 索引文件。当文件没有在磁盘缓冲区内时,该索引文件将文件转换为大量磁盘搜索活动。启用“类数据共享”,Java 虚拟机现在可以提供一个“元索引(meta-index)”文件(位于 jre/lib 中),其中包含在 jar 文件中所含包的高层次信息。 当 Java 应用程序类被加载时,这有助于 JVM 避免打开在引导和扩展类路径上的所有 jar 文件。要了解更多详细信息,查看错误 6278968}。 下面我们给出了 Java SE 5 和 Java SE 6 Update 2 的应用程序启动时间性能对比图。此测试的运行环境为 1 GB 内存的 Intel Core 2 Duo 2.66GHz 台式机。 应用程序启动对比结果显示了系统的相对性能(数值越小,性能越好),并且在基准运行的每种情况中都没有添加任何性能标志。 我们还比较了 Java SE 5 和 Java SE 6 Update 2 所需内存占用量的大小。 这项测试的运行环境是 1GB 内存的 Intel Core 2 Duo 2.66GHz 台式机: 内存占用量对比结果显示了系统的相对性能(数值越小,性能越好),并且在运行基准的每种情况中都没有添加任何性能标志。 尽管新增了许多功能,但是 Java 虚拟机的核心内存利用率却大大削减,这使其对系统内存的实际影响比 Java SE 5 要低很多。 2.4.3 启动画面功能 Java SE 6 提供了一个使应用程序在虚拟机启动前显示启动画面的解决方案。目前,Java 应用程序的启动程序能够对图像进行解码,并在简单的未修饰窗口中显示该图像。 2.4.4 Swing 的真正双重缓冲 现在 Java SE 6 已经启用了 Swing 的真正双重缓冲功能。Swing 过去在应用程序的基础上提供双重缓冲;现在,在每一个窗口(per-window)基础上提供双重缓冲,并且将原生暴露事件直接复制到双重缓冲区。这样显著地提高了 Swing 的性能,特别在远程服务器上效果尤为明显。 有关更多详细信息 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |