WEB开发网
开发学院操作系统Linux/Unix 最大化 AIX 上的 Java 性能,第 2 部分: 速度需求... 阅读

最大化 AIX 上的 Java 性能,第 2 部分: 速度需求

 2008-11-10 08:26:34 来源:WEB开发网   
核心提示: 对于属于 CPU 密集型从而希望最小化后台处理的应用程序,可以考虑 技巧 CPU007:禁用显式的 System.gc() 调用、技巧 CPU008:使用小型堆和 技巧 CPU009:消除“标记堆栈溢出”,最大化 AIX 上的 Java 性能,第 2 部分: 速度需

对于属于 CPU 密集型从而希望最小化后台处理的应用程序,可以考虑 技巧 CPU007:禁用显式的 System.gc() 调用、技巧 CPU008:使用小型堆和 技巧 CPU009:消除“标记堆栈溢出”。正如前面提到过的,您应该将 技巧 CPU008:使用小型堆与内存特征结合起来考虑。

对于非 CPU 密集型应用程序,强烈建议考虑 技巧 CPU002:使用并发 GC。这将通过减少 GC 周期到达时的总体暂停时间来获益。

定义良好的引用局域性

如果应用程序有一些经常执行的方法,而其他方法则很少执行,则 技巧 CPU003:在第一次调用时编译所有内容将是非常好的性能增强方法。

并行度

如果应用程序运行多个线程以完成工作,则会从具有大量 CPU 的系统中获益。对于动态分区,添加更多 CPU 会立即表现出改进,因为可以立即将 Java 线程调度到新添加的 CPU 上。技巧 CPU005:使用大量线程、技巧 CPU006:减少锁争用和 技巧 CPU011:超过 24 个 CPU 的系统讨论了可尝试的其他优化。

但是如果应用程序只有单个执行线程,则会受到单个 CPU 的处理能力的限制。在此情况下,您可能希望尝试 技巧 CPU002:使用并发 GC 和 技巧 CPU010:单 CPU 系统。如果您要尝试在某个系统上运行多个 JVM 实例(例如,在集群环境中),则 技巧 CPU010:单 CPU 系统特别有帮助。

一般技巧集合

下文将把 Java 的命令行参数(在 class/jar 文件名称之前指定)称为“开关”。例如,命令行“java -mx2g hello”具有单个开关“-mx2g”。

技巧 CPU001:快速启动应用程序

可以使用非标准开关 -Xquickstart 缩短应用程序的启动时间。此开关将 JIT 优化级别降至最低,并且仅当适用的方法再次变得活动时才重新应用优化。对于其执行不是集中于少数方法的应用程序,这样做的结果是启动时间要快得多。

上一页  3 4 5 6 7 8 9 10  下一页

Tags:最大化 AIX Java

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