【发布时间】:2014-03-07 16:42:04
【问题描述】:
我有一个包含 80 个不同类的大约 80 个实例的应用程序。这些类的某些子集产生的垃圾量是不可接受的,并且停止世界暂停时间太长,因为我的应用程序是实时的。
我想要找到的是哪些类负责在堆上创建最大的 数量 对象(不是聚合大小,而是对象的原始数量),因为这就是停止世界暂停的原因花了这么长时间。
我如何找到这个?
如果需要 JVisualVM,我有这个。
【问题讨论】:
-
If JVisualVM is required, I have this.那么是什么阻止你使用它呢? -
@sᴜʀᴇsʜᴀᴛᴛᴀ 没有什么能阻止我使用 JVisualVM,就像没有什么能阻止我使用任何其他工具一样。问题是我不知道如何回答由最差的类(在这个工具或我过去使用的任何其他工具中)生成的对象数量的具体问题。
-
您使用的是哪个 GC?哪个 Java 发行版和版本?世界停顿了多久?您的用例可接受的持续时间是多少?你是如何测量停止世界持续时间的?如果你只有 80 个实例,并且这个数字没有改变,那么根据定义,没有新的实例被创建,因此没有垃圾被创建......你能澄清你的意思吗?
标签: java performance garbage-collection heap-memory