Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse内存分析器-泄漏可疑报告不';我不能指着我的课——为什么?_Java_Eclipse_Memory Leaks_Heap_Eclipse Rcp - Fatal编程技术网

Java Eclipse内存分析器-泄漏可疑报告不';我不能指着我的课——为什么?

Java Eclipse内存分析器-泄漏可疑报告不';我不能指着我的课——为什么?,java,eclipse,memory-leaks,heap,eclipse-rcp,Java,Eclipse,Memory Leaks,Heap,Eclipse Rcp,我正在尝试确定我的webapp中是否存在内存泄漏。我正在使用VisualVM和JMeter加载测试并查看堆 昨天我保存了一个堆转储文件并下载了Eclipse内存分析器……在对VisualVM感到非常沮丧之后,我认为Eclipse会比VisualVM更好地查明漏洞(如果有) 我在Eclipse中打开了堆文件并运行了他们所谓的泄漏嫌疑犯报告。我原以为它会指向我的webapp中的一个特定类,但事实并非如此。因此,我不知道如何使用它提供的信息来找出泄漏嫌疑人在我的任何特定类别中的位置 这是我的一个堆转储

我正在尝试确定我的webapp中是否存在内存泄漏。我正在使用VisualVM和JMeter加载测试并查看堆

昨天我保存了一个堆转储文件并下载了Eclipse内存分析器……在对VisualVM感到非常沮丧之后,我认为Eclipse会比VisualVM更好地查明漏洞(如果有)

我在Eclipse中打开了堆文件并运行了他们所谓的泄漏嫌疑犯报告。我原以为它会指向我的webapp中的一个特定类,但事实并非如此。因此,我不知道如何使用它提供的信息来找出泄漏嫌疑人在我的任何特定类别中的位置

这是我的一个堆转储文件的泄漏可疑报告的结果

One instance of "org.apache.catalina.session.StandardManager" loaded by "org.apache.catalina.loader.StandardClassLoader @ 0x261bdac0" occupies 16,977,376 (48.54%) bytes. The memory is accumulated in one instance of "java.util.concurrent.ConcurrentHashMap$Segment[]" loaded by "". Keywords org.apache.catalina.loader.StandardClassLoader @ 0x261bdac0 org.apache.catalina.session.StandardManager java.util.concurrent.ConcurrentHashMap$Segment[] “org.apache.catalina.loader.StandardClassLoader@0x261bdac0”加载的“org.apache.catalina.session.StandardManager”的一个实例占用16977376(48.54%)字节。内存累积在由“”加载的“java.util.concurrent.ConcurrentHashMap$Segment[]”的一个实例中。 关键词 org.apache.catalina.loader.StandardClassLoader@0x261bdac0 org.apache.catalina.session.StandardManager java.util.concurrent.ConcurrentHashMap$段[] 报告中的其他详细信息如所附图像所示。我希望这张图片可以放大,以便更仔细地观察。。。。


我知道Eclipse应该是非常好的软件。这是我最后一次尝试使用类似的方法来查找内存泄漏-我只是对如何将此软件用于此类用途的知识非常、非常、有限。教程和帮助页面描述了一些事情,好像你应该知道点击几下后该做什么。。。我需要更多的帮助。

虽然我没有使用Eclipse查找泄漏的任何经验,但我首先要问一个问题:您有多确定您有内存泄漏?从你的问题来看,听起来你并不确定自己有漏洞,但你正在测试是否有漏洞。最简单的测试方法是启动应用程序,注意它消耗了多少内存,让JMeter连续运行24小时,然后查看它消耗了多少内存(可能是在执行GC之后)。如果您的应用程序占用了相当大的内存,或者由于
OutOfMemoryError
而死亡,那么您就存在内存泄漏

如果您发现确实存在内存泄漏,那么我首先建议您通过FindBugs运行应用程序,看看它是否可以通过快速静态分析找到内存泄漏。如果这不起作用,那么(尽管它已经很老了)可能会帮助您理解Eclipse提供给您的结果