如何知道我的应用程序运行时期间是否运行了垃圾收集器?
有没有什么方法可以让我们了解Java垃圾收集器是否在应用程序运行时运行?
保罗
您可以使用JVM参数-verbose:gc
和-XX:+PrintGCDetails
来查看GC正在执行的操作。 请查看http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html的第3.2节
List gcBeans = ManagementFactory.getGarbageCollectorMXBeans(); for (GarbageCollectorMXBean gcBean : gcBeans) { long numCollections = gcBean.getCollectionCount(); // it's possible for this to return -1 for a given collector }
我猜你可以用WeakReference做到这一点
// beginning of application WeakReference