我在Java中有一个性能敏感的应用程序。 (我知道我应该使用C或其他东西。但它现在是Java。)我试图避免创建和丢弃对象。现在我需要知道还在进行多少垃圾收集。
我如何找到?
如果可能的话,我希望有一个以毫秒或纳秒为单位的数字,不需要安装更多软件。
答案 0 :(得分:8)
或者你可以让JVM打印GC活动..我有这些设置:
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -Xloggc:logs/gc.log
GC活动将打印到文件 logs / gc.log ..
答案 1 :(得分:7)
您可以使用VisualVM等工具来监控应用程序活动。确保使用适当的GC算法。
Oracle JVM提供多种类型的垃圾收集器:
详细了解这些收藏家here。
答案 2 :(得分:2)
答案 3 :(得分:1)
Jprofiler,它允许内存配置文件评估内存使用情况和动态分配泄漏,以及CPU分析以评估线程冲突。