我想了解JVM上次垃圾收集的时间。这可能吗?我怎么知道?如何找出JVM最后一次垃圾收集的时间?
2
A
回答
3
最简单的方法是开始你-verbose Java应用程序:GC,这将倾倒垃圾回收到stdout信息:
的java -verbose:GC MyProgram
7
这应该让你开始:
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
for (GarbageCollectorMXBean gcBean : ManagementFactory.getGarbageCollectorMXBeans()) {
System.out.println(gcBean.getCollectionCount());
com.sun.management.GarbageCollectorMXBean sunGcBean = (com.sun.management.GarbageCollectorMXBean) gcBean;
System.out.println(sunGcBean.getLastGcInfo().getStartTime());
}
对sunGcBean的强制转换可能不能移植到非Sun JVM。您可以找到目标VM的特定于供应商的扩展,或者在看门狗线程中观察gcBean.getCollectionCount(),该线程记录当前时间发生变化。
1
根据您正在运行的应用程序服务器,您可能会在管理控制台中获得您要查找的统计信息。垃圾收集统计信息通过jmx公开,几乎所有主要的应用程序服务器都有一个jmx控制台。否则,我们可以使用Jconsole绑定到远程jvm并获取垃圾收集统计信息。 (即使jconsole将使用Jmx)
相关问题
- 1. 如何分析JVM垃圾收集?
- 2. 默认的垃圾收集的JVM
- 3. 有没有垃圾收集器的JVM?
- 4. 热点JVM垃圾收集器
- 5. 垃圾收集 - 老一代
- 6. 垃圾收集java
- 7. Java垃圾收集
- 8. Java垃圾收集
- 9. C#垃圾收集
- 10. GWT垃圾收集
- 11. DoctrineCommonCache垃圾收集?
- 12. 垃圾收集器
- 13. Java之后的垃圾收集器null
- 14. Scala对象何时收集垃圾?
- 15. 没有垃圾回收的JVM
- 16. Objective-C的垃圾收集
- 17. 数量的垃圾收集
- 18. Node.js的垃圾收集器
- 19. bash中的垃圾收集
- 20. 的Java newSingleThreadExecutor垃圾收集
- 21. dalvik vm的垃圾收集
- 22. 垃圾收集的OutOfMemoryError
- 23. 垃圾收集器如何确定对象是否是垃圾?
- 24. Java垃圾收集日志输出
- 25. 如何跟踪垃圾收集对象
- 26. Android ART垃圾如何收集?
- 27. 如何禁用Java垃圾收集器?
- 28. 垃圾收集机制如何工作?
- 29. 垃圾收集器如何识别根
- 30. 如何配置.net垃圾收集器?
谢谢。我会记住这一点,但这不是我正在运行的应用程序服务器上的一个选项。我想以编程方式进行。 – JavaRocky 2011-03-22 21:57:42
声音你需要与调试体系结构一起玩:http://download.oracle.com/javase/6/docs/technotes/guides/jpda/index.html - 虽然我没有任何实际的知识。 – JenEriC 2011-03-22 22:03:41