Tag: 内存泄漏

如果.NET中的MemoryStream未closures,是否会产生内存泄漏?

我有以下代码: MemoryStream foo(){ MemoryStream ms = new MemoryStream(); // write stuff to ms return ms; } void bar(){ MemoryStream ms2 = foo(); // do stuff with ms2 return; } 有没有机会,我已经分配的MemoryStream将以某种方式不能被丢弃? 我有一个同行评审坚持我手动closures这个,我找不到信息来判断他是否有一个有效的点。

为malloc创build一个包装函数,在C中创build一个free包装函数

嗨,我试图创build免费的包装函数和C中的malloc来帮助通知我的内存泄漏。 有没有人知道如何声明这些函数,所以当我调用malloc()和free()它会调用我的自定义函数,而不是标准的lib函数?

用于Delphi的分析器和内存分析工具

我最近从delphi4升级到delphi2009年。随着delphi4我一直使用普里莫兹Gabrijelcic GpProfile作为一个分析器和内存 侦查 由涡轮动力内存分析和泄漏debugging。 两者对我都很好。 但是我现在需要一些新的工具,可以和Delphi 2009一起工作。 delphi的分析/分析工具的领先者显然是AutomatedQA的AQTime 。 他们最近甚至吞下了Atanas Soyanov的Memproof ,据我所知 ,它是一个出色的免费内存分析工具,并将其function整合到AQTime中。 但是AQTime对个人程序员来说是非常昂贵的。 它实际上比成本更高的delphi2009成本更高! 所以我的问题是:在当前版本的Delphi中,是否有其他更便宜的选项来进行性能分析和内存分析?您是否满意和推荐?还是应该咬紧牙关,为AQTime付出巨额代价? Adaline:早期的答复者似乎表示,已经包含在Delphi中的FastMMpipe理器非常适合查找内存泄漏。 那么,有没有什么好的替代品的源代码分析? 我很好奇的是迈克尔·阿道夫(Michael Adolph )的ProDelphi,它的价格不到AQTime的六分之一。 你用它吗? AQTime的价值是六倍吗? 钼2:我下载了AQTime和ProDelphi的试用版本。 AQTime起初有点令人难以置信,有点混乱。 花了几个小时find一些挂钩的技巧。 ProDelphi非常像我曾经习惯的GpProfile。 但它的窗户混乱和混乱,它不像GpProfile那么好。 对我来说,巨大的差异似乎是: ProDelphi更改您的代码。 AQTime没有。 如果出现问题,更改代码可能会破坏数据,但我对GpProfile的使用经验是,它从来没有发生过我。 另外一个用于AQTime。 ProDelphi要求您closures优化。 但是你想要分析的是你的程序在运行的方式上进行优化。 另外一个用于AQTime。 ProDelphi只能剖析function或程序。 AQTime可以下到个别的行。 AQTime加2。 ProDelphi有一个免费的版本,将20个例程,其专业版的成本低于100美元。 AQTime是600美元。 Plus ProDelphi 4。 现在比分是4-4。 你怎么看? 第三名:Primoz Gabrijelcic计划再次获得GpProfile。 请参阅他对以下某些回复的评论。 他在StackOverflow上作为Gabr 。 4:看起来好像有可能是一个探查器解决scheme。 见安德烈的开放源码asmprofiler,如下所述 。

如何设置JVM的最大内存使用量?

我想限制JVM使用的最大内存。 请注意,这不仅仅是堆,我想限制这个过程使用的总内存。

诊断内存泄漏 – 允许#字节的内存大小被耗尽

我遇到了可怕的错误消息,可能是经过艰苦的努力,PHP已经耗尽内存: 在第123行的file.php中允许#### bytes允许的内存大小(试图分配####个字节) 增加限制 如果你知道你在做什么,并想增加限制,请参阅memory_limit : ini_set('memory_limit', '16M'); ini_set('memory_limit', -1); // no limit 谨防! 你可能只是解决症状而不是问题! 诊断泄漏: 错误信息指向一条循环,我认为这个循环正在泄漏或不必要的累积。 我在每次迭代结束时都打印了memory_get_usage()语句,并可以看到数字缓慢增长,直到达到极限: foreach ($users as $user) { $task = new Task; $task->run($user); unset($task); // Free the variable in an attempt to recover memory print memory_get_usage(true); // increases over time } 对于这个问题,让我们假设可以想象的最糟糕的意大利面代码隐藏在全局范围的$user或Task 。 什么工具,PHP的技巧,或debugging巫术可以帮助我find并解决这个问题?

WPF CreateBitmapSourceFromHBitmap()内存泄漏

我需要逐个像素地绘制图像,并将其显示在WPF中。 我正在尝试通过使用System.Drawing.Bitmap然后使用CreateBitmapSourceFromHBitmap()为WPF图像控件创build一个BitmapSource 。 我有一个内存泄漏的地方,因为当CreateBitmapSourceFromBitmap()被重复调用时,内存使用率上升,直到应用程序结束时不下降。 如果我不调用CreateBitmapSourceFromBitmap()内存使用情况没有明显的变化。 for (int i = 0; i < 100; i++) { var bmp = new System.Drawing.Bitmap(1000, 1000); var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); source = null; bmp.Dispose(); bmp = null; } 我能做些什么来释放BitmapSource内存?

内存泄漏检测工具

Apple的Xcode开发环境是否提供任何内存泄漏检测工具? 我特别感兴趣的是适用于iPhone SDK的工具。 目前我最喜欢的编程项目爱好平台 上述工具的文档/教程将非常有帮助。

泄漏仪器不显示时如何debugging内存泄漏?

我有一个用Swift编写的iOS应用程序正在泄漏内存 – 在某些情况下,应该释放一些对象,但它们不是。 我已经通过简单地添加deinitdebugging消息来了解这个问题: deinit { println("DEINIT: KeysProvider released") } 所以,在应该导致对象释放的事件之后,deinit消息应该出现在控制台中。 但是,对于一些应该发布的对象,则缺less该消息。 尽pipe如此,泄漏开发工具并没有显示任何泄漏。 我如何解决这种情况?

使用HeapDumpOnOutOfMemoryError参数进行JBoss的堆转储

有人告诉我可以将-XX:+HeapDumpOnOutOfMemoryError参数添加到我的JVM启动选项中,以便在我们的应用程序中出现内存不足错误时,启动JBoss启动脚本以获得堆转储。 我想知道这些数据在哪里被丢弃? 只是对控制台,或一些日志文件? 如果仅仅是控制台,如果我没有通过控制台login到Unix服务器呢?

Android:Gallery中的内存不足exception

我的应用程序显示了9个类别的列表,每个类别都显示了一个基于图库的封面stream(由Neil Davies 在此优雅地提供)以及所选类别的图像。 这些图像是从Web中获取的,每个图像的大小在300K到500K之间,并存储在Drawable的数组列表中。 这些数据使用BaseAdapter绑定到coverflow(代码如下)。 每次我退出coverflow并返回到类别列表,我清除arrayList(再次,代码如下)。 在场景1中,我的arrayList包含5个Drawable。 在这种情况下,我可以自由浏览所有的类别,并显示他们的图像。 在我的testing中,我循环了所有的类别5次,这似乎足以确定没有问题。 在场景2中,我的数组列表包含10个可绘图。 在这种情况下,当通过第5或第6关卡中的图像时,出现OutOfMemoryErrorexception: 07-13 08:38:21.266:ERROR / dalvikvm-heap(2133):819840字节的外部分配过大。 07-13 08:38:21.266:错误/(2133):虚拟机不会让我们分配819840字节 07-13 08:38:21.277:DEBUG / skia(2133):— decoder-> decode返回false 07-13 08:38:21.287:WARN / dalvikvm(2133):threadid = 25:线程退出时未捕获的exception(group = 0x4001b188) 07-13 08:38:21.296:错误/ AndroidRuntime(2133):未捕获的处理程序:线程由于未捕获的exception而退出线程64 07-13 08:38:21.308:错误/ AndroidRuntime(2133):java.lang.OutOfMemoryError:位图大小超过VM预算 07-13 08:38:21.308:错误/ AndroidRuntime(2133):在android.graphics.BitmapFactory.nativeDecodeStream(本地方法) 07-13 08:38:21.308:错误/ AndroidRuntime(2133):在android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:459) 07-13 08:38:21.308:错误/ AndroidRuntime(2133):在android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323) 07-13 08:38:21.308:错误/ AndroidRuntime(2133):在android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697) 07-13 08:38:21.308:错误/ AndroidRuntime(2133):在android.graphics.drawable.Drawable.createFromStream(Drawable.java:657) 这对我来说没有意义。 如果我正在泄漏记忆,那么在场景1中的某个时刻,我预计会崩溃,但是我经历了所有类别,而且没有崩溃。 我还使用了Eclipse的Memory […]