内存泄漏-gdiplus.dll笔刷

本文关键字:笔刷 dll -gdiplus 泄漏 内存 | 更新日期: 2023-09-27 18:27:36

我的应用程序正在使用5 GB到6 GB的内存。我们已经运行了IIS调试诊断程序,它显示以下内容:

GdiPlus.dll负责2.49 GB的未完成分配。以下是消耗内存最多的2个功能:

GdiPlus!GpMemoryBitmap::AllocBitmapData+c2:2.47 GB的未完成分配。GdiPlus!EpScanBitmap::Start+212:6.79 MB的未完成分配。

在w3wp.exe_Projectname-2_PID_28824_Date__03_10_2012__Time_03_15_14PM_457_Leak Dump-Private Bytes.dmp 中检测到此错误

是什么导致了这次泄漏?这是由于笔刷造成的。

请给出一些想法/或如何解决这个问题?

提前谢谢。

内存泄漏-gdiplus.dll笔刷

您可能忘记释放GDI句柄(位图、画笔、笔等)。大多数GDI对象实现IDisposable,在使用完这些对象后,应该始终调用Dispose方法。using语句可以帮助实现这一点:

using (Brush b = new SolidBrush(Color.Black))
{
    ...
} // b.Dispose is called automatically here

我想说(根据您提供的alocator信息),您不会杀死位图。每个GDI+对象都是IDisposable,所以建议使用Dispose()using关键字。