Tag: 内存泄漏

使用Chrome查找JavaScript内存泄漏

我创build了一个非常简单的testing用例,创build一个Backbone视图,将一个处理程序附加到一个事件,并实例化一个用户定义的类。 我相信通过单击此示例中的“删除”button,一切都将被清除,应该没有内存泄漏。 代码的jsfiddle在这里: http : //jsfiddle.net/4QhR2/ // scope everything to a function function main() { function MyWrapper() { this.element = null; } MyWrapper.prototype.set = function(elem) { this.element = elem; } MyWrapper.prototype.get = function() { return this.element; } var MyView = Backbone.View.extend({ tagName : "div", id : "view", events : { "click #button" : "onButton", }, […]

“内存泄漏”剖析

在.NET的angular度来看: 什么是内存泄漏 ? 你如何确定你的应用程序是否泄漏? 有什么影响? 你怎么能防止内存泄漏? 如果您的应用程序有内存泄漏,当进程退出或死亡时它会消失吗? 或者即使在进程完成后,应用程序中的内存泄漏也会影响系统上的其他进程? 那么通过COM Interop和/或P / Invoke访问非托pipe代码呢? 我自己对这些问题有一些答案,但是它们不完整。 你怎么看?

AngularJS – $ destroy是否删除事件监听器?

https://docs.angularjs.org/guide/directive 通过监听此事件,可以删除可能导致内存泄漏的事件侦听器。 注册到范围和元素的监听器在被销毁时会被自动清理,但是如果您在服务上注册监听器,或者在没有被删除的DOM节点上注册监听器,则必须自己清理它,或者你冒险引入内存泄漏。 最佳实践:指令应该自行清理。 您可以使用element.on('$ destroy',…)或作用域。$ on('$ destroy',…)在删除指令时运行清理函数。 题: 我有一个element.on "click", (event) ->在我的指令里面: 当指令被破坏时,有没有对element.on内存引用来防止被垃圾收集? Angular文档指出我应该使用一个处理程序来移除$destroy发送的事件上的事件侦听器。 我的印象是, destroy()删除事件监听器,是不是这样的情况?

内存泄漏是否正常?

在C或C ++应用程序中发生内存泄漏是否可以接受? 如果你分配一些内存并使用它直到应用程序中最后一行代码(例如全局对象的析构函数)呢? 只要内存消耗不会随着时间的推移而增长,当应用程序终止时(在Windows,Mac和Linux上),相信操作系统为您释放内存是否可行呢? 如果内存被连续使用,直到被操作系统释放,你甚至会认为这是一个真正的内存泄漏。 如果第三方图书馆强迫你这样做,会怎么样? 拒绝使用第三方图书馆,不pipe它有多么伟大? 我只看到一个实际的缺点,那就是这些良性泄漏会以内存泄漏检测工具显示为误报。

如果一个DOM元素被删除,它的监听器是否也从内存中删除?

如果一个DOM元素被删除,它的监听器是否也从内存中删除?

什么时候可以安全地使用(匿名)内部类?

我一直在阅读一些关于Android内存泄漏的文章,并从Google I / O 上观看了这个有趣的video。 尽pipe如此,我还是不完全理解这个概念,特别是当它对Activity中的用户内部类是安全的或危险的时候 。 这就是我所理解的: 如果一个内部类的实例比它的外部类生存得更久(一个Activity),就会发生内存泄漏。 – > 哪种情况可以发生? 在这个例子中,我想没有泄漏的风险,因为没有办法延长OnClickListener的匿名类的活动时间比活动,对不对? final Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.dialog_generic); Button okButton = (Button) dialog.findViewById(R.id.dialog_button_ok); TextView titleTv = (TextView) dialog.findViewById(R.id.dialog_generic_title); // *** Handle button click okButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { dialog.dismiss(); } }); titleTv.setText("dialog title"); dialog.show(); 现在,这个例子是危险的,为什么? // We are still inside […]

如何删除没有内存泄漏的DOM元素?

我的JavaSript代码构build了LI元素的列表。 当我更新列表时,内存使用量增长,永远不会下降。 我在sIEve中进行了testing,结果表明浏览器保留了所有被$.remove()或$.empty jQuery命令删除的元素。 我应该怎么做,没有内存泄漏删除DOM节点? 看到我的其他问题的具体代码。

NodeJS:如何debugging“检测到EventEmitter内存泄漏。 11位听众添加了“

我怎样才能debugging我的应用程序引发这个错误: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit. Trace at Socket.EventEmitter.addListener (events.js:160:15) at Socket.Readable.on (_stream_readable.js:653:33) at Socket.EventEmitter.once (events.js:179:8) at TCP.onread (net.js:527:26) 我无法find假设的泄漏对象,以增加侦听器限制,通过.setMaxListeners(0); 解决scheme(来自fardjad和jan salawa) 随着jan salawa的search,我发现了一个工作库( longjohn ),用于增加堆栈跟踪详细信息。 随着fardjad的回应,我发现我们必须原型EventEmitter.addListener 和 EventEmitter.on 。 有了解决scheme,我可以得到这个新的痕迹: (node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase […]

如何在C ++代码/项目中查找内存泄漏?

我是Windows平台上的C ++程序员。 我正在使用Visual Studio 2008。 我通常最终在内存泄漏代码。 通常我通过检查代码来发现内存泄漏,但是这很麻烦,并不总是一个好方法。 由于我买不起付费内存泄漏检测工具,所以我想让大家build议最好的方法来避免内存泄漏。 我想知道程序员如何find内存泄漏。 是否有任何标准或程序应该遵循,以确保程序中没有内存泄漏?

返回一个指向自动variables的指针

假设你有以下function: char *getp() { char s[] = "hello"; return s; } 由于该函数正在返回一个指向外部函数中的局部variables的指针,会导致内存泄漏吗? PS我仍然在学习C,所以我的问题可能有点天真… [更新] 所以,如果说你想返回一个新的char[]数组(也许是一个子string函数),你准确返回什么? 它应该是指向外部variables的指针吗? 即不是函数本地的char[] ?