我正在使用VisualVM内存分析来分析应用程序的内存分配行为。不幸的是,分析过程本身似乎污染了我的结果。
我不断看到在5分钟的时间范围内分配80Mb,这是由于内存分析结果是通过JMXBean RMI连接进行序列化的。这个内存总是在第1代中,当我要求它时会立即进行GC记录,但是现在仍然很烦人。
我可以根据进行分配的类过滤内存分析结果吗?
答案 0 :(得分:3)
尝试JProfiler,它不使用堆资源。你可以在这里看到:
Why does an empty Java program consume memory?
在分析空应用程序时,visualvm甚至会分配很多东西。
答案 1 :(得分:1)
我发现了同样的问题。出于这个原因,我使用商业分析器,例如YourKit,它使用本机代理进行分析,不使用堆或有很多开销。