问题标签 [memory-leak-detector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 调整 GC Overhead Exceeded 参数
我需要我的 Oracle Hotspotjava.lang.OutOfMemoryError: GC overhead limit exceeded
比使用UseGCOverheadLimit
.
默认情况下,OOME 发生在超过 98% 的时间用于 GC 并且不到 2% 的堆被回收(描述http://www.oracle.com/technetwork/java/javase/gc-tuning-6 -140523.html#par_gc.oom )。
例如,当超过 20% 的时间用于 GC 时,我需要我的 JVM 抛出 OOME。不幸的是,这-XX:GCTimeRatio=nn
似乎没有什么不同。
我需要以这种方式调整我的 JVM 的原因是我正在测试我的应用程序是否包含内存泄漏(准确地说,我有一个内存泄漏检测基础设施,我想每天测试我们的应用程序)并且我不不需要我的 JVM 尽可能努力地释放堆。
c++ - INVALID HEAP ARGUMENT:用 operator new[] 分配,用 operator delete 释放
我正在使用 Dr. Memory 来调试我的代码。它给了我以下信息:
但是,每当我使用delete[]
而不是delete
,它都会给我同样的错误。错误发生在以下几行中:
变量data
分配如下:
有人可以帮我吗?
java - java - 如何在java中找到匿名类的GC根?
就在今天,我在我的应用程序中发现了内存泄漏,其中大量对象被创建为匿名类。这是一个经典的例子,每个对象都有自己的类定义并放入堆中。
在运行时内存分析器中查找并非易事,Eclipse 内存分析器完成的堆转储分析也没有帮助。
我想知道如何使用线程 ID(或至少是父类加载器)记录在运行时创建的所有匿名类。
我认为仅此一件事就会使寻找根本原因变得微不足道。
python - 为什么 objgraph 不能捕捉到 np.array() 的增长?
见代码:
结果是:
对于 2,3 和 4 时期,它没有显示任何增长。但它应该表明 numpy.array 的数量在增长
openmpi - Openmpi 和 vargrind
我只是使用 valgrind 来测试 openmpi-1.4/example 中提供的示例:
mpirun.openmpi --np 2 valgrind --log-file=output.dat --leak-check=full --tool=memcheck ./ring_c
然后我在 output.dat 中找到了以下内容:
==30450== 系统调用参数 writev(vector[...]) 指向未初始化的字节
==30450== 在 0x54DC150: __writev_nocancel (syscall-template.S:81)
==30450== 由 0x7E3B312:mca_oob_tcp_msg_send_handler(在 /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so 中)
==30450== 由 0x7E3C50A:mca_oob_tcp_peer_send(在 /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so 中)
==30450== 0x7E40266:mca_oob_tcp_send_nb(在 /usr/lib/openmpi/lib/openmpi/mca_oob_tcp.so 中)
==30450== 0x7C2FFB7:orte_rml_oob_send(在 /usr/lib/openmpi/lib/openmpi/mca_rml_oob.so 中)
==30450== 0x7C30637:orte_rml_oob_send_buffer(在 /usr/lib/openmpi/lib/openmpi/mca_rml_oob.so 中)
==30450== 由 0x824CBAE: ??? (在 /usr/lib/openmpi/lib/openmpi/mca_grpcomm_bad.so 中)
==30450== 通过 0x4E900FB:ompi_mpi_init(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)==30450== 通过 0x4EA8499:PMPI_Init(在 /usr/lib/openmpi/lib/libmpi.所以.1.0.8)
==30450== by 0x4009AD: main (ring_c.c:19)
==30450== 地址 0x65c0321 在大小为 256 的块内是 161 个字节,已分配
==30450== 在 0x4C2DEAE:realloc(在 /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so 中)
==30450== 0x4F1E619:opal_dss_buffer_extend(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)
==30450== 0x4F1E9D0:opal_dss_copy_payload(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)
==30450== 由 0x4EFA3DD:orte_grpcomm_base_pack_modex_entries(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)
==30450== 由 0x824CA8F: ??? (在 /usr/lib/openmpi/lib/openmpi/mca_grpcomm_bad.so 中)
==30450== 由 0x4E900FB:ompi_mpi_init(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)
==30450== 由 0x4EA8499:PMPI_Init(在 /usr/lib/openmpi/lib/libmpi.so.1.0.8 中)
==30450== by 0x4009AD: main (ring_c.c:19)
==30450== 堆摘要:
==30450== 退出时使用:1,482 个块中的 298,974 个字节
==30450== 总堆使用量:7,740 次分配,6,258 次释放,13,223,431 字节分配
…………
==30450== 泄漏摘要:
==30450== 肯定丢失:69 个块中的 51,132 个字节
==30450== 间接丢失:39 个块中的 14,378 个字节
==30450== 可能丢失:0 个块中的 0 个字节
==30450== 仍然可以访问:1,374 个块中的 233,464 个字节
==30450== 抑制:0 个块中的 0 个字节
==30450== 未显示可达块(找到指针的块)。
==30450== 要查看它们,请重新运行: --leak-check=full --show-leak-kinds=all
==30450==
==30450== 对于检测到和抑制的错误计数,重新运行:-v
==30450== 使用 --track-origins=yes 查看未初始化值的来源
==30450== 错误摘要:来自 63 个上下文的 63 个错误(抑制:0 来自 0)
它有基于内存检查结果的内存泄漏。既然例子是由openmpi-1.4开发者提供的,是不是说每一个使用openmpi-1.4作为库的程序都会遇到内存泄漏呢?弗雷德
c++ - 如何检测 tbbmalloc 中的内存泄漏
如您所知,TBBmalloc 不会将内存块返回给系统。我正在使用视觉泄漏检测器来检测我的项目中的内存泄漏。我想知道如何检测 TBBmalloc 中的内存泄漏。我想查看调用堆栈,当程序退出时,哪个泄漏的内存块,就像视觉泄漏检测器一样。
还有其他很棒的检测工具吗?,如何编写代码轻松检测内存泄漏?
android - Android 应用程序中的内存泄漏
我有一个看起来像这样的类结构。
在活动 Destroy() 中,我将设置变量 a = null。但是在堆上,我仍然可以看到变量 b 持有 B 的引用。
谁能解释一下?
android - 无法从 Leakcanary 的泄漏报告中检测到参考
下面是 FeedsAdapter 的代码
当用户喜欢或评论特定的提要时,我调用片段类方法来更新它并在应用程序中显示朋友的提要。当我显示个别朋友的提要时,这将造成泄漏任何关于如何解决这个问题的想法。