我有在Java中一个非常敏感的性能应用。 (我知道我应该实际使用C或别的东西。但现在的Java)。我试图避免创建和扔掉的对象。 现在我需要知道有多少垃圾回收仍在继续。
我怎样才能找到?
如果可能的话,我想在毫秒数量排序或纳秒的东西,并不需要安装更多的软件。
我有在Java中一个非常敏感的性能应用。 (我知道我应该实际使用C或别的东西。但现在的Java)。我试图避免创建和扔掉的对象。 现在我需要知道有多少垃圾回收仍在继续。
我怎样才能找到?
如果可能的话,我想在毫秒数量排序或纳秒的东西,并不需要安装更多的软件。
或者你可以让JVM打印GC活动。这些设置,我有:
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -Xloggc:logs/gc.log
GC活动打印到文件记录/ gc.log ..
您可以使用工具,如VisualVM的监视应用程序的活动。 请确保您使用适当的GC alogorithms。
甲骨文JVM提供多种类型的垃圾收集:
了解更多关于这些收藏在这里 。
您可以使用VisualVM的这一点,这是你所需要的东西。
正如你可以看到下面你有GC活动,这是非常有用的:
旁边的GC活动你有很多的细节有这样的:堆使用,CPU使用率,对象实例的使用等。
JProfiler的 ,这使得两个存储简档,以评估内存使用和动态分配的泄漏和CPU剖析,以评估线程的冲突。