Tag: 内存泄漏

如何在创buildmatplotlib数字后释放内存

我有几个matlpotlib函数卷入一些Django芹菜任务。 每次任务被称为更多的RAM专用于Python。 太久之前,python占用了所有的RAM。 问题:我如何释放这个内存? 更新2 – 第二个解决scheme: 我问了一个类似的问题,特别是有关matplotlib错误时locking的内存,但我得到了一个很好的答案。如果使用多gc.collect()运行,则不需要gc.collect()和gc.collect()绘图function在一个单独的进程中,一旦进程结束,内存将自动释放。 Matplotlib错误导致内存泄漏。 我怎样才能释放内存? 更新 – 解决scheme: 这些stackoverflowpostbuild议我可以释放matplotlib对象使用的内存与以下命令: .clf() : 在绘制循环时,Matplotlib内存不足 .close() : Python matplotlib:指定graphics大小时,内存不会被释放 import gc gc.collect() 以下是我用来testing解决scheme的示例: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from pylab import import figure, savefig import numpy as np import gc a = np.arange(1000000) b = np.random.randn(1000000) fig = plt.figure(num=1, dpi=100, facecolor='w', […]

什么是C / C ++程序及其插件DLL的最佳空闲内存泄漏检测器?

我有一个.exe和许多插件.dll模块的.exe加载。 (我有两个来源)。跨平台(与源)解决scheme将是理想的,但平台可以缩小到WinXP和Visual Studio(7.1 / 2003在我的情况)。 内置的VS泄漏检测器只给出new / malloc被调用的行,但是我有一个分配的包装器,所以完整的符号堆栈跟踪将是最好的。 检测器还能够检测.exe及其随附的插件.dll模块中的泄漏。

在Linux中,如何判断有多less内存进程正在使用?

我想我可能在我的LAMP应用程序中有内存泄漏(内存用完,交换开始使用等)。 如果我能看到各种进程正在使用多less内存,这可能会帮助我解决我的问题。 有没有办法让我在* nix中看到这些信息?

内存泄漏C ++

我只是用C ++编写了一些代码,但是当我运行valgrind时,它显示了一些可能的内存泄漏。 debugging代码到粒度级别我写了一个简单的C ++程序,如下所示: #include<iostream> #include<cstdlib> using namespace std; int main() { std::string myname("Is there any leaks"); exit(0); } 并在其上运行valgrind我得到: ==20943== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 26 from 1) ==20943== malloc/free: in use at exit: 360,645 bytes in 12,854 blocks. ==20943== malloc/free: 65,451 allocs, 52,597 frees, 2,186,968 bytes allocated. ==20943== For counts […]

在JavaScript中debugging内存泄漏的工具

我在一个相当复杂的JavaScript项目中遇到了内存泄漏问题,希望有一些工具可以帮助我指出问题的原因。 我曾尝试使用Google Chrome开发者工具“个人资料”标签,在该标签中我可以拍摄HEAP快照,并将其与以前的快照区分开来(请访问http://www.youtube.com/GoogleDevelopers#p/c/B9EC47A6AAE4540F/1/OxW1dCjOstE以获取在该function上启动)。 我可以看到这个工具的内存消耗,但从那里我无法find一个方法来检测我的对象的引用保存(可能在closures)。 我的问题是:你用什么工具进行JavaScript内存泄漏debugging? 有没有一个工具可以让我看到他们所在的地方的参考资料和一些源代码?

内存在JavaScript中的泄漏和closures – 何时和为什么?

你经常在网上看到,使用闭包是JavaScript中一个巨大的内存泄漏源。 大多数情况下,这些文章是指混合脚本代码和DOM事件,脚本指向DOM,反之亦然。 我知道封闭可能是一个问题。 但是Node.js呢? 在这里,我们自然没有DOM – 所以没有机会像浏览器一样产生内存泄漏的副作用。 closures还有什么其他问题? 任何人可以详细说明或指出我一个很好的教程呢? 请注意,这个问题明确地针对Node.js,而不是浏览器。

Java Standard API中的内存泄漏陷阱

什么类的Java标准API可能会导致内存泄漏(以明显不正确的方式使用)? 这些内存泄漏如何避免/修复? 示例: ObjectInputStream和ObjectOutputStream保留对所有对象的引用,以便将随后发生的同一对象作为引用而不是副本发送(从而处理循环引用)。 这会导致内存泄漏,当你保持这样一个stream无限期打开(例如,当使用它来通过networking进行通信)。 修复:定期或在每个顶级对象之后调用reset()。

用Python卸载一个模块

TL / DR: import gc, sys print len(gc.get_objects()) # 4073 objects in memory # Attempt to unload the module import httplib del sys.modules["httplib"] httplib = None gc.collect() print len(gc.get_objects()) # 6745 objects in memory 更新我已经联系了Python开发者关于这个问题,并且实际上在“未来五年”中将不可能完全卸载一个模块 。 (请参阅链接) 请接受,Python确实不支持在2.x中卸载严重的,基本的,难以克服的技术问题的模块。 在我最近在我的应用程序中寻找memleak的时候,我把它缩小到了模块,也就是我无法收集一个卸载的模块。 使用下面列出的任何方法卸载模块会在内存中留下数千个对象。 换句话说 – 我不能在Python中卸载一个模块 问题的其余部分是试图以某种方式垃圾收集模块。 咱们试试吧: import gc import sys sm = sys.modules.copy() # httplib, which […]

Go是否受到与Java相同的微妙的内存泄漏?

这里是事实: 语言Go有一个垃圾收集器。 Java有一个垃圾收集 很多Java程序有(微妙的或不)内存泄漏 作为一个Java程序有内存泄漏的例子(不是心存疑虑,这个问题可能会动摇你的信念),在这里看到一个叫做Tomcat的Java程序,它甚至有一个“find leaks”button: 有没有办法避免在Tomcat中取消部署内存泄漏? 所以我想知道:用Go编写的程序是否会展现出与Java编写的一些程序一样的(微妙的或不是)内存泄漏?

漏抽象的意义?

“抽象抽象”是什么意思? (请用实例来解释,我经常很难理解一个理论。)