首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Netbeans 11的性能分析器中将性能分析模式切换到内存模式?

如何在Netbeans 11的性能分析器中将性能分析模式切换到内存模式?
EN

Stack Overflow用户
提问于 2020-06-12 03:31:23
回答 1查看 120关注 0票数 1

我正在运行Netbeans 11的Linux 64位计算机(32 GB的RAM,8个虚拟CPU)与Open JDK 11。我想分析一个应用程序(这是一个索引器的SOLR),因为在生产运行了很长一段时间后,我得到了内存不足的错误,我看到使用的内存(由操作系统报告)不断增加,而不是减少。它从8 8GB开始,经过几天(有时是几周),达到30 8GB,并抛出OOM (Java堆空间)。

我不能在我的开发机器(16 GB RAM,4个CPU)上重现这个OOM,所以我决定使用Netbeans profiler,看看我是否可以获得一些线索,了解是什么导致RAM消耗随着时间的推移而增加。

我开始关注Netbeans article,并在两个索引过程后看到了以下内容(实际上在生产服务器上,索引过程将无限成功,但有些索引过程可能会持续几天或几周):

所以我猜我的应用程序中有一个内存泄漏。到目前一切尚好。但在上面提到的Netbeans文章中,他们告诉您“将分析模式切换到内存模式”(在“发现源代码”一章中)。但我找不到该切换到记忆的地方。下面是我的GUI的外观:

如果我点击"Profile objects“,那么我看到的内容与文章中显示的内容很接近,但只有"Live bytes”和"Live Objects“。因此,没有提到“世代”,因为它们显示,右上角的小箭头没有提供它作为选择(只提供“名称”,“实时字节”,“实时对象”)。

因此,我是在正确的位置,如果是这样,我如何才能获得其他列("Avg Age","Generations",...)然后,我如何才能找到导致源代码中内存泄漏的部分呢?或者,是否有人能给出另一篇更详细的文章/教程(对于新手),关于如何分析应用程序以发现内存泄漏?

非常感谢任何帮助:-)!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-15 12:25:34

因此,要获得"Surviving generations metrics“在article中的显示,您必须选择"Object”,然后在"Profile“中选择一个"Focused (Instrumented)”选项,并选中"Track only live objects“,如Netbeans' wiki中所述。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62332123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档