【发布时间】:2012-03-23 10:57:41
【问题描述】:
在 Java 中,假设运行了 3 个 java 应用程序。
a) 首先,我的应用程序正在运行
b) 其次,不是由我运行的 java 应用程序制作的
c) 第三,不是我做的 java 其他运行的应用程序
d) 第四,我运行以下方法的另一个应用程序:
public static void printGCStats() {
long totalGarbageCollections = 0;
long garbageCollectionTime = 0;
for(GarbageCollectorMXBean gc : ManagementFactory.getGarbageCollectorMXBeans()) {
long count = gc.getCollectionCount();
if(count >= 0) {
totalGarbageCollections += count;
}
long time = gc.getCollectionTime();
if(time >= 0) {
garbageCollectionTime += time;
}
}
System.out.println("Total Garbage Collections: "
+ totalGarbageCollections);
System.out.println("Total Garbage Collection Time (ms): "
+ garbageCollectionTime);
}
问题是:d) 将仅显示 d 垃圾收集详细信息,或者它将显示所有内容,包括 a + b + c +d ?一旦我请求 System.gc 或 runtime.gc 它会请求单个还是全部?
【问题讨论】:
-
注意:这很可能取决于所使用的JVM!
标签: java linux garbage-collection jvm