gpt4 book ai didi

java - 如何找到哪些对象产生的垃圾最多

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:57 24 4
gpt4 key购买 nike

我有一个包含 80 个不同类的大约 80 个实例的应用程序。由于我的应用程序是实时的,因此这些类的某些子集生成的垃圾量是 Not Acceptable ,并且停止世界暂停时间太长。

我想找到的是哪些类负责在堆上创建最大数量 的对象(不是聚合大小,而是对象的原始数量),因为这是导致世界停止暂停的原因花了这么长时间。

我如何找到它?

如果需要 JVisualVM,我有这个。

最佳答案

查看每个类的对象数量的一种非常轻量级的方法是类直方图

只需通过 jmap -histo <PID> 生成类直方图.

使用 -XX:+PrintClassHistogramBeforeFullGC , -XX:+PrintClassHistogramAfterFullGC在发生停止世界暂停时查看类直方图。您可以比较之前/之后的快照,以查看在停止世界暂停期间收集了哪些类实例。

Profiling number of garbage-collected object instances per class 中查看更多详细信息.

关于java - 如何找到哪些对象产生的垃圾最多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21675709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com