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

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

 2008-11-10 08:26:34 来源:WEB开发网   
核心提示: export JITC_COMPILEOPT=FORCE(0){com/myapp/special}{SpecialMethod}此示例仅在第一次加载时编译这个特定的方法,除了 *(表示零个或多个字符)以外,最大化 AIX 上的 Java 性能,第 2 部分: 速度需求(10),还可以使用

export JITC_COMPILEOPT=FORCE(0){com/myapp/special}{SpecialMethod}

此示例仅在第一次加载时编译这个特定的方法。除了 *(表示零个或多个字符)以外,还可以使用“?”作为单个字符的通配符。

可以使用以下语法指定多个类和/或方法:

export JITC_COMPILEOPT=FORCE(0){class1}{method1}{class2}{method2}

确保用文档清楚地说明这是一个优化而不是修复!

请注意:应用程序的启动时间可能由于此设置而延长。

技巧 CPU004:完全去掉 GC

可以将启动和最大堆大小设置为非常大的值,以便在运行期间不会发生任何分配故障。应该为这些运行启用 verbosegc,以确保该策略有效!

请注意:当 GC 发生时,其周期可能会相当长,因此只能在极少的情况下使用此技巧。

技巧 CPU005:使用大量线程

对于扩展到更大数量的线程,您应该使用 -Xss 开关来指定一个小于缺省值(通常为 512 K,但是可能随 Java 版本而异)的值。这将使您可以扩展到更大数量的线程,同时减小应用程序的本机内存占用空间。

请注意:如果堆栈大小太小,您可能会遇到堆栈溢出 (Stack Overflow) 异常。

技巧 CPU006:减少锁争用

如果应用程序体系结构允许的话,您可以尝试运行多个 Java 实例,以减少锁争用。这是通过允许此类配置的应用程序服务器来促进的;例如,WebSphere 允许您在同一台物理计算机上使用多个节点。

请注意:这只能掩盖问题;您应该复查导致过多锁争用的代码部分。可以使用 tprof 或 Java 分析来定位需要复查的区域。

技巧 CPU007:禁用显式的 system.gc() 调用

使用非标准开关 -Xdisableexplicitgc,您可以减少对删除代码中的 System.gc() 调用的需要。删除这些调用将把 GC 管理工作返还给 JVM。

上一页  5 6 7 8 9 10 

Tags:最大化 AIX Java

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