gpt4 book ai didi

java - 如何减少 VisualVM 对堆使用的影响?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:32:35 25 4
gpt4 key购买 nike

我正在尝试优化我的应用程序的内存使用情况。不幸的是,使用 -Dcom.sun.management.jmxremote 运行我的应用程序并通过 VisualVM 连接它对堆使用有相当大的影响。一开始我以为是我应用的问题,后来写了一个很简单的程序确认确实是JMX的开销。以下是 Activity 图片。

看完this ,我开始明白这是由于 VisualVM 检索数据的方式,即通过连续轮询连接的应用程序。我通过查看 VisualVM 的内存采样器证实了这一点。 RMI TCP Connection(n) 线程正在分配 180kb/秒。

我的问题是,有没有办法减少 VisualVM 对堆使用的影响?更改轮询间隔可能不太好,因为我对堆信息很感兴趣。如果这不可能,我们是否可以排除用于 VisualVM 的数据?至少我想更专注于我的应用程序。

运行代码

Object object = new Object();
synchronized (object) {
object.wait();
}

VisualVM 的堆监视器 Activity

enter image description here

最佳答案

最简单的做法是减少轮询间隔。影响与获取数据的速率成正比。

我所做的是使用 YourKit,它在 native 内存中执行所有操作,因此对堆没有影响。

关于java - 如何减少 VisualVM 对堆使用的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028168/

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