Questions tagged «memory-leaks»

当程序无法释放其已分配但不再使用且不可恢复的内存时,就会发生内存泄漏。

4
使用HeapDumpOnOutOfMemoryError参数进行JBoss的堆转储
有人告诉我可以在-XX:+HeapDumpOnOutOfMemoryError我的JBoss启动脚本中将参数添加到JVM启动选项中,以在我们的应用程序出现内存不足错误时进行堆转储。我想知道这些数据在哪里转储?它只是到控制台还是一些日志文件?如果只是控制台,如果我没有通过控制台登录Unix服务器怎么办?
182 java  jboss  memory-leaks  heap 

19
如何在C ++代码/项目中查找内存泄漏?
我是Windows平台上的C ++程序员。我正在使用Visual Studio 2008。 我通常会在代码中出现内存泄漏。 通常,我可以通过检查代码来发现内存泄漏,但这很麻烦,而且并不总是一种好的方法。 由于我买不起付费的内存泄漏检测工具,因此我希望你们提出避免内存泄漏的最佳方法。 我想知道程序员如何发现内存泄漏。 是否应遵循任何标准或程序以确保程序中没有内存泄漏?
180 c++  memory-leaks 

9
Python内存泄漏
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 去年关闭。 改善这个问题 我有一个长时间运行的脚本,如果让脚本运行足够长的时间,它将消耗系统上的所有内存。 在不详细介绍脚本的情况下,我有两个问题: 是否有可遵循的“最佳实践”,以防止泄漏发生? 有什么技术可以调试Python中的内存泄漏?

15
“内存泄漏”的剖析
在.NET透视图中: 什么是内存泄漏? 您如何确定您的应用程序是否泄漏?有什么影响? 如何防止内存泄漏? 如果您的应用程序存在内存泄漏,那么在进程退出或被杀死时它会消失吗?还是即使进程完成后,应用程序中的内存泄漏也会影响系统上的其他进程吗? 通过COM Interop和/或P / Invoke访问的非托管代码又如何呢?

8
使用Chrome查找JavaScript内存泄漏
我创建了一个非常简单的测试用例,该用例创建了Backbone视图,将处理程序附加到事件,并实例化了用户定义的类。我相信,通过单击此示例中的“删除”按钮,将清除所有内容,并且不会出现内存泄漏。 该代码的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" …

13
java.lang.OutOfMemoryError:位图大小超出VM预算-A​​ndroid
我开发了一个在Android上使用大量图像的应用程序。 该应用程序运行一次,填满屏幕(上的信息Layouts,Listviews,Textviews,ImageViews,等)和用户读取的信息。 没有动画,没有特效或任何可以填满内存的东西。有时可绘制对象可以更改。有些是android资源,有些是保存在SDCARD文件夹中的文件。 然后,用户退出(该onDestroy方法被执行,并且应用程序由VM保留在内存中),然后在某个时候用户再次进入。 每次用户进入该应用程序时,我都会看到内存越来越多,直到用户获得java.lang.OutOfMemoryError。 那么处理许多图像的最佳/正确方法是什么? 我应该将它们放在静态方法中,这样就不会一直加载它们吗?我是否必须以特殊方式清洁版面或版面中使用的图像?

4
为什么以及如何避免事件处理程序内存泄漏?
通过阅读关于StackOverflow的一些问题和答案,我才意识到,+=在C#中使用事件处理程序(或者,我猜是其他.net语言)会导致常见的内存泄漏。 过去,我多次使用过这样的事件处理程序,但从未意识到它们会导致或导致应用程序中的内存泄漏。 这是如何工作的(意味着,为什么这实际上会导致内存泄漏)? 我该如何解决这个问题?使用-=同一事件处理程序是否足够? 是否存在处理此类情况的通用设计模式或最佳实践? 示例:我应该如何处理具有许多不同线程的应用程序,并使用许多不同的事件处理程序在UI上引发多个事件? 在已经构建的大型应用程序中,是否有任何简便的方法可以有效地对此进行监视?

7
哪些Android工具和方法最适合发现内存/资源泄漏?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 我已经开发了一个Android应用程序,而我正在进行电话应用程序开发,一切似乎都很好,并且您想宣告胜利并出货,但是您知道必须存在一些内存和资源泄漏在那里; Android上只有16mb的堆,而且显然很容易在Android应用中泄漏。 我一直在环顾四周,到目前为止,我们只能挖掘有关“ hprof”和“ traceview”的信息,而且都没有得到很多好评。 您遇到或开发了哪些工具或方法,并希望在OS项目中共享这些工具或方法?

15
哪些策略和工具可用于发现.NET中的内存泄漏?
我写了10年的C ++。我遇到了内存问题,但是可以通过合理的努力解决它们。 在过去的几年中,我一直在编写C#。我发现我仍然遇到很多内存问题。由于不确定性,它们很难诊断和修复,并且因为C#的理念是,当您一定要这样做时,您不必担心这些事情。 我发现的一个特殊问题是,我必须明确地处置和清理代码中的所有内容。如果我不这样做,那么内存探查器并没有真正的帮助,因为有太多杂乱无章的东西浮在水面上,您无法在他们试图向您展示的所有数据中找到泄漏。我想知道我是否有错误的主意,或者我拥有的工具不是最好的。 什么样的策略和工具对于解决.NET中的内存泄漏很有用?

8
正确实现IDisposable
在我的课程中,我实现IDisposable的方式如下: public class User : IDisposable { public int id { get; protected set; } public string name { get; protected set; } public string pass { get; protected set; } public User(int UserID) { id = UserID; } public User(string Username, string Password) { name = Username; pass = …

11
如何找到Java内存泄漏
您如何找到Java中的内存泄漏(例如,使用JHat)?我试图将堆转储加载到JHat中,以进行基本了解。但是,我不明白我应该如何找到根引用(ref)或任何被称为根引用的东西。基本上,我可以说哈希表条目有几百兆字节([java.util.HashMap $ Entry或类似的东西),但是地图到处都是……使用某种方法可以搜索大型地图,还是找到大对象树的一般根? [编辑]好的,到目前为止,我已经阅读了答案,但是我们只能说我是个贱人(这意味着我对学习如何使用JHat而不是为JProfiler付费更感兴趣)。另外,由于JHat是JDK的一部分,因此始终可用。除非当然不能使用JHat,否则只能使用蛮力,但是我不敢相信这种情况。 另外,我认为我将无法进行实际修改(添加所有地图尺寸的记录)并运行足够长的时间,以至于我无法注意到泄漏。

2
这个对象生存期延长关闭是C#编译器错误吗?
我当时回答的问题有关闭的可能(合法)扩展对象的生命周期,当我遇到了一些非常奇怪的代码生成的C#编译器的部分(4.0,如果该事项)。 我能找到的最短的再现是: 创建一个lambda来捕获本地,同时调用包含类型的 静态方法。 将生成的委托引用分配给包含对象的实例字段。 结果:编译器在没有理由的情况下创建了一个引用创建lambda的对象的闭包对象-委托的“内部”目标是静态方法,而lambda-createing对象的实例成员不需要执行委托时(不被)触碰。实际上,编译器的行为就像程序员this无故捕获的一样。 class Foo { private Action _field; public void InstanceMethod() { var capturedVariable = Math.Pow(42, 1); _field = () => StaticMethod(capturedVariable); } private static void StaticMethod(double arg) { } } 从发行版本生成的代码(反编译为“简单” C#)看起来像这样: public void InstanceMethod() { <>c__DisplayClass1 CS$<>8__locals2 = new <>c__DisplayClass1(); CS$<>8__locals2.<>4__this = this; // …



29
如何在(非托管)代码中检测/避免内存泄漏?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在非托管C / C ++代码中,检测内存泄漏的最佳实践是什么?和编码指南要避免?(好像就是这么简单;) 过去,我们使用了一些愚蠢的方法:每个内存分配调用都有一个计数器递增,释放时递减。在程序结束时,计数器值应为零。 我知道这不是一个好方法,而且有一些问题。(例如,如果您要释放由平台API调用分配的内存,则您的分配计数将与您的释放计数不完全匹配。当然,然后,在调用分配了内存的API调用时,我们会增加计数器。) 我期待您的经验,建议,以及一些简化此工具的参考。
125 c++  c  memory-leaks 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.