最大化 AIX 上的 Java 性能,第 2 部分: 速度需求
2008-11-10 08:26:34 来源:WEB开发网请注意:由于多阶段的优化方法,此开关可能对长期运行的应用程序具有负面影响。请注意:
技巧 CPU002:使用并发 GC
可以指定“并发标记垃圾收集策略”(Concurrent Mark Garbage Collection Policy),以便减少 GC 周期引入的暂停时间量。这是使用 -Xgcpolicy:optavgpause 开关来指定的。
请注意:在某些情况下,CPU 密集型应用程序可能会在指定了并发标记的情况下表现出吞吐量下降。
技巧 CPU003:在第一次调用时编译所有内容(或选定的方法)
可以将环境变量 IBM_MIXED_MODE_THRESHOLD 设置为 0,从而关闭混合模式的解释器 (Mixed-Mode interpreter)。其结果是所有方法都将在第一次调用时进行 JIT 编译。将下面这一行内容添加到环境设置中,或者简单地在启动 Java 前运行此行命令:
export IBM_MIXED_MODE_THRESHOLD=0
还可以对非零值进行试验,以确定是否有某个特定的 MMI 阈值可以比零值提供更好的性能。对于 AIX,Java 1.3.1 使用 600 作为阈值,而 Java 1.4 则使用一个大于 1000 的值(请注意,这些值可能会更改)。IBM developer kits - diagnosis documentation 在“JIT Diagnostics”一章下面的“Selecting the MMI Threshold”小节中提供了更多信息。
如果您只希望影响某些类,可以改为使用 JITC_COMPILEOPT=FORCE(0){classname}{methodname}。示例:
export JITC_COMPILEOPT=FORCE(0){com/myapp/*}{*}
此示例在第一次加载时编译 com.myapp.* 包中的所有类的所有方法。
export JITC_COMPILEOPT=FORCE(0){*}{uniqueName}
此示例在第一次加载时编译所有名为“uniqueName”的方法。
更多精彩
赞助商链接