最大化 AIX 上的 Java 性能,第 3 部分: 更多就是更好
2008-11-10 08:26:39 来源:WEB开发网请注意:如果优化不当,使用可变大小的堆会产生严重的性能影响。
技巧 MEM003:快速的堆增长
使用高于缺省值 (1 MB) 的 -Xmine 值。这将允许 Java 堆的最小扩展变得更迅速。例如, -Xmine5m 将允许堆一次增长 5 MB(或更多,最多可达 -Xmaxe)。
请注意:-Xmine 只是在进行堆扩展时发挥作用的若干因素之一。有关堆扩展的更多信息,请参见 Diagnostics Guides。
技巧 MEM004:受控的堆增长
使用与缺省值 (0) 不同的 -Xmaxe 值。这会强制将 Java 堆的最大扩展保持在指定的限制之内。例如,-Xmaxe2m 将强制堆在一个周期中的增长不能超过 2MB。
请注意: -Xmaxe 只是在进行堆扩展时发挥作用的若干因素之一。有关堆扩展的更多信息,请参见位于 IBM developer kits - diagnosis documentation 的 Diagnostics Guides。
技巧 MEM005:禁用堆收缩
要禁用堆收缩,可以使用 -Xmaxf1,此开关将最大空闲堆百分比设置为 100%。
请注意:这将强制堆只能增长,如果堆具有固定大小,则此开关不起作用。
技巧 MEM006:使用并发标记 (Concurrent Mark)
使用开关 -Xgcpolicy:optavgpause 以启用并发标记。
请注意:对于 CPU 密集型应用程序,此设置可能会影响性能。
技巧 MEM007:禁用显式的 GC 调用
使用开关 -Xdisableexplicitgc 禁用任何 System.gc() 调用以避免触发 GC。
请注意:确保您的应用程序功能不会受到此开关的影响。
技巧 MEM008:优化本机堆分配
设置环境变量:
export MALLOCTYPE=buckets
以切换到基于 Bucket 的本机堆模型。
请注意:Java 堆分配不受此开关的影响。而且,如果使用不当,此开关会影响应用程序的性能。
总结
本文向您介绍了如何使用 AIX 工具进行 Java 性能监视,并提供了可用来优化应用程序的内存使用的常用调整列表。本系列中的下一篇文章将讨论“AIX 上的 Java 应用程序的网络和磁盘 I/O 调整”。
更多精彩
赞助商链接