哪种分析器更适合通用分析和堆分析?我们90%的应用程序都是独立的命令行程序,具有大量的数据库和数字处理功能.另外10%是webapps/servlet容器应用程序(JSP和NO SCRIPLETS很少!).目标用户将是具有5 - 10年行业经验的高级软件工程师.我们只需要Sun JDK 5和.
截至撰写此问题(2008-10-02)时,JProfiler为5.1.4,YourKit为7.5.看起来像YourKit 8.0即将发布.
假设我有一个Java程序Test.class.我想测量它的执行时间.我写了一个包装器,如下所示:
class RunTest {
public static void main(String[] args) {
long sum = 0;
int iterations = 20;
int warmupNum = 10;
for(int i=0; i<iterations; i++){
long start = System.nanoTime();
Test.main(args);
long end = System.nanoTime();
if( i > warmupNum )
sum += end - start;
}
System.out.println("ave: "+sum/(iterations-warmupNum));
}
}
Run Code Online (Sandbox Code Playgroud)
在这里如何选择warmupNum,越大越好?多大就足够了?这是衡量Java程序性能的"标准/通用"方法吗?