回答
这将打印出当前加载到您的JVM中的所有垃圾收集器的列表。
import java.lang.management.*;
import java.util.List;
public class x {
public static void main(String args[]) {
List<GarbageCollectorMXBean> l = ManagementFactory.getGarbageCollectorMXBeans();
for(GarbageCollectorMXBean b : l) {
System.out.println(b.getName());
}
}
}
谢谢。这帮了很多。 – user640121 2011-03-03 19:10:27
嗯,我只想知道什么时候踢java进程正在使用的垃圾回收器是什么。当我使用更新的(1.6.0_20)版本的jre时,发生OutOfMemory问题。使用旧版本(1.6.0_5)我没有看到问题。我运行的测试当然是一致的。我的猜测是,这可能与正在使用的垃圾收集器有关。我在网上搜索很多,但无法找到一种方法来告诉默认情况下,特定jre版本中使用的gc。 – user640121 2011-03-03 00:44:20
我认为答案是你不能直接告诉默认垃圾收集器是什么。您可以知道当前JVM中当前使用了哪些垃圾收集器,但这取决于其他因素(如JVM选项...),因此无法从中可靠地推断默认GC。
而且(不耐受@Lucas说什么),推断(可靠)的默认就是通过其他手段将难:
由于@Lucas指出,缺省值取决于机器是否瀑布进入“服务器级”类别,并且在某些情况下,这取决于不可移动访问的机器的物理属性。
该流程的文档不完整,不一定完全可靠。
行为(“服务器级”分类,每个类的默认GC等)可能取决于Java版本。事实上,它甚至可能随JVM补丁版本而改变。
IMO,更好的方法是在启动子进程时显式设置JVM选项,而不要依赖默认值。或者,只要按照默认设置进行即可。
为什么随机downvote? – 2011-03-03 03:05:38
- 1. Java 8的默认垃圾收集器
- 2. 有没有垃圾收集器的JVM?
- 3. 热点JVM垃圾收集器
- 4. 如何分析JVM垃圾收集?
- 5. CMS垃圾收集器的maxtenuringthreshold标志的默认值?
- 6. 垃圾收集java
- 7. Java垃圾收集
- 8. Java垃圾收集
- 9. C#垃圾收集
- 10. GWT垃圾收集
- 11. DoctrineCommonCache垃圾收集?
- 12. 垃圾收集器
- 13. 没有垃圾回收的JVM
- 14. Objective-C的垃圾收集
- 15. 数量的垃圾收集
- 16. Node.js的垃圾收集器
- 17. bash中的垃圾收集
- 18. 的Java newSingleThreadExecutor垃圾收集
- 19. dalvik vm的垃圾收集
- 20. 垃圾收集的OutOfMemoryError
- 21. 可以将JVM的方法区域垃圾收集?
- 22. 定期垃圾收集是否有助于JVM的性能?
- 23. 如何找出JVM最后一次垃圾收集的时间?
- 24. 延迟垃圾收集?
- 25. 了解Actionscript垃圾收集
- 26. Android - 检测垃圾收集
- 27. Renderscript和垃圾收集器
- 28. JavaScript垃圾收集暂停
- 29. .NET垃圾收集器
- 30. 结构和垃圾收集
可能的重复http://stackoverflow.com/questions/5024959/find-which-type-of-garbage-collector-is-running? – 2011-03-03 00:35:47