Mic*_*ael 11 java performance garbage-collection jvm qa
假设我正在测试Java服务器应用程序.我知道完成测试需要多长时间.现在,我想知道在测试期间在GC上花了多少钱.我该怎么做?
Ste*_*eod 22
我想当GC(垃圾收集器)工作时,应用程序停止并在GC完成时恢复
我不认为这是一个安全的假设.您确定垃圾收集器与您的应用程序代码并行工作吗?
要测量收集垃圾所花费的时间,您可以查询垃圾收集器MXBean.
试试这个:
public static void main(String[] args) {
System.out.println("collectionTime = " + getGarbageCollectionTime());
}
private static long getGarbageCollectionTime() {
long collectionTime = 0;
for (GarbageCollectorMXBean garbageCollectorMXBean : ManagementFactory.getGarbageCollectorMXBeans()) {
collectionTime += garbageCollectorMXBean.getCollectionTime();
}
return collectionTime;
}
Run Code Online (Sandbox Code Playgroud)
最简单的方法是在启动JVM时使用-Xloggc和-XX:-PrintGCTimeStamps选项.我认为它打印出垃圾收集需要多长时间.
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
| 归档时间: |
|
| 查看次数: |
13153 次 |
| 最近记录: |