Tag: 内存泄漏

什么是内存泄漏?

显然维基百科有关这个话题的大量信息,但我想确保我明白。 从我能告诉重要的是要理解堆栈/堆关系,以真正理解内存泄漏? 所以这就是我所理解的。 更正非常欢迎! 当你第一次启动你的程序时,会分配一块内存,比如0x000到0xFFF。 第一部分(比如0x000到0x011)是加载程序代码的代码/文本段。 +————–+ 0x011 | Program Code | +————–+ 0x000 然后你有堆栈(比如0x012到0x7ff),它包含局部variables,并且它们被存储/检索FIFO。 所以如果你有类似的东西 char middleLetter(string word){ int len = word.length(); return word[len/2]; } int main(){ int cool_number; char letter; letter = middleLetter("Words"); … 然后你的variables将被分配在堆栈上,看起来像这样: +————-+ 0x7ff | | | | | | | … | | len | | letter | | […]

Bitmap,Bitmap.recycle(),WeakReferences和垃圾收集

Android上的AFAIK,build议引用Bitmap对象作为WeakReferences,以避免内存泄漏。 当没有更多的硬引用保留位图对象时,垃圾收集器将自动收集它。 现在,如果我理解正确,必须始终调用方法Bitmap.recycle()来释放一个位图。 我认为这是因为Bitmap对象有特殊的内存pipe理。 那是对的吗? 如果这是真的,那么在使用WeakReferences时,必须存在内存泄漏,因为在释放WeakReferences时,Bitmap.recycle()永远不会被调用。 或者,不知何故,WeakReferences足以避免内存泄漏? 谢谢

轨道上的ruby/ruby内存泄漏检测

我在rails上使用ruby编写了一个小型web应用程序,其主要目的是上传,存储和显示来自xml(文件可以高达几MB)文件的结果。 运行了大约2个月后,我注意到这个杂种进程使用了​​大约4GB的内存。 我做了一些关于debuggingruby内存泄漏的研究,但是找不到太多内容。 所以我有两个问题。 有什么好的工具可以用来在Ruby / rails中查找内存泄漏? 什么types的编码模式导致ruby中的内存泄漏?

内存分析工具在android?

我只是想知道如何在Android中使用内存分析工具。 请告诉我如何做到这一点,以了解特定项目的内存泄漏。 有人可以给我这个步骤明智的程序。

回收ImageView的位图

我有这样的东西: Bitmap.Config conf = Bitmap.Config.ARGB_8888; WeakReference<Bitmap> bm = new WeakReference<Bitmap>(Bitmap.createBitmap(3000 + 3000, 2000, conf)); Canvas canvas = new Canvas(bm.get()); canvas.drawBitmap(firstBitmap, 0, 0, null); canvas.drawBitmap(bm, firstBitmap.getWidth(), 0, null); imageView.setImageBitmap(bm); 而且我将这个应用于10多个逐一创build的imageView。 每当我创build新的ImageView,我想从第一个回收'bm'对象,导致这个代码在那里,导致我的堆越来越多,然后抛出OutOfMemoryError ,所以我做: bm.recycle() 在将Bitmap(bm)设置为imageView对象之后。 这会导致ImageView的canvas想要绘制循环位图的exception。 什么是回收已经被放在ImageView上的图像的位图的方式? Thanksb

在Tomcat中重新部署应用程序时发生内存泄漏

当我在tomcat中重新部署应用程序时,出现以下问题: The web application [] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@10d16b]) and a value of type [com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty] (value [com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty@1a183d2]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak. 另外,我在我的应用程序中使用ehcache。 这也似乎导致以下例外。 SEVERE: The web application [] created a ThreadLocal with key […]

永远不会解决的承诺导致内存泄漏?

我有一个承诺。 我创build它来取消一个AJAX请求,如果我需要的话。 但是因为我不需要取消那个AJAX,所以我从来没有解决它,AJAX成功完成。 简化的sinippet: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't need to cancel that ajax. What happens to this promise after request? 永远不会解决这样的承诺导致内存泄漏? 你有关于如何pipe理承诺生命周期的build议吗?

如何在iOS中释放CGImageRef

我正在写这个方法来计算图像的平均R,G,B值。 以下方法将UIImage作为input,并返回包含input图像的R,G,B值的数组。 我有一个问题:如何/我在哪里正确地释放CGImageRef? -(NSArray *)getAverageRGBValuesFromImage:(UIImage *)image { CGImageRef rawImageRef = [image CGImage]; //This function returns the raw pixel values const UInt8 *rawPixelData = CFDataGetBytePtr(CGDataProviderCopyData(CGImageGetDataProvider(rawImageRef))); NSUInteger imageHeight = CGImageGetHeight(rawImageRef); NSUInteger imageWidth = CGImageGetWidth(rawImageRef); //Here I sort the R,G,B, values and get the average over the whole image int i = 0; unsigned int red = 0; […]

与lambdas一起使用的弱事件处理程序模型

好的,所以这个问题不仅仅是一个问题,而是在回答这个问题 ,把Dustin Campbell , Egor的各个部分和IObservable / Rx / Reactive框架的最后一个提示放在一起之后,我想我为这个特殊问题找出了一个可行的解决scheme。 它可能完全被IObservable / Rx / Reactive框架所取代,但只有经验才会显示出来。 我故意创造了一个新的问题,给我一些空间来解释我是如何得到这个解决scheme的,因为它可能不是很明显。 有很多相关的问题,大多数告诉你,如果你想能够在以后分离它们,你不能使用内联lambdas: .Net中的弱事件? 在C#中使用lambdas解除事件 可以使用lambda作为事件处理程序导致内存泄漏? 如何取消订阅使用lambdaexpression式的事件? 在C#中取消订阅匿名方法 事实上,如果你希望能够在以后分离它们,你需要保留对lambda的引用。 但是,如果您只是希望事件处理程序在订阅者超出范围时自行分离,则此答案适用于您。

双删除会发生什么?

Obj *op = new Obj; Obj *op2 = op; delete op; delete op2; // What happens here? 当你不小心加倍删除时,会发生什么情况? 有关系吗? 编译器会抛出一个错误吗?