[英]memory leak - gdiplus.dll brushes
我的应用程序正在使用5 GB到6 GB的内存。 我们已经运行了IIS调试诊断程序,它显示以下内容:
GdiPlus.dll负责2.49 GBytes的未完成分配。 以下是最重要的两个内存消耗函数:
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中检测到此问题
是什么原因导致泄漏? 这是由于刷子。
请提出一些想法/或如何解决?
提前致谢。
您可能会忘记释放GDI手柄(位图,画笔,笔等)。 大多数GDI对象都实现IDisposable
,在使用完这些对象后,应始终调用Dispose
方法。 using
语句可以帮助您:
using (Brush b = new SolidBrush(Color.Black))
{
...
} // b.Dispose is called automatically here
我会说(根据您提供的定位器信息),您不会杀死位图。 每个GDI +对象都是IDisposable
,因此建议使用Dispose()
或使用using
关键字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.