Java垃圾收集时间?(Java Garbage Collection Time?)

2019-08-31 09:35发布

我有在Java中一个非常敏感的性能应用。 (我知道我应该实际使用C或别的东西。但现在的Java)。我试图避免创建和扔掉的对象。 现在我需要知道有多少垃圾回收仍在继续。

我怎样才能找到?

如果可能的话,我想在毫秒数量排序或纳秒的东西,并不需要安装更多的软件。

Answer 1:

或者你可以让JVM打印GC活动。这些设置,我有:

-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -Xloggc:logs/gc.log

GC活动打印到文件记录/ gc.log ..



Answer 2:

您可以使用工具,如VisualVM的监视应用程序的活动。 请确保您使用适当的GC alogorithms。

甲骨文JVM提供多种类型的垃圾收集:

  • 吞吐量收集
  • 并发低暂停集电极
  • 增量(有时称为列车)低暂停集电极:

了解更多关于这些收藏在这里 。



Answer 3:

您可以使用VisualVM的这一点,这是你所需要的东西。
正如你可以看到下面你有GC活动,这是非常有用的:

旁边的GC活动你有很多的细节有这样的:堆使用,CPU使用率,对象实例的使用等。



Answer 4:

JProfiler的 ,这使得两个存储简档,以评估内存使用和动态分配的泄漏和CPU剖析,以评估线程的冲突。



文章来源: Java Garbage Collection Time?