处理非托管内存GDIplus(位图)

时间:2019-01-23 13:59:19

标签: c# forms memory-management bitmap

我正在开发一个项目,该项目有许多带有图片,图片框和设计内容的按钮。

一切都很好,没有内存泄漏,并且优化进展顺利。

我已经优化了大多数图像,仅使用图标分辨率,其中大多数是32x32或64x64,它们根本不占用内存。

问题是,我遇到了GDIplus使用的非托管内存的问题,该程序占用了程序使用的90-100 mbs的内存,而程序本身占用了23-25 mbs。

我搜索了很多,我知道GC不会经常收集这些,我需要处理它们。问题是,我是从Visual Studio中的“属性”而不是代码中加载图像。我无法处置它们(至少我不知道如何)。

一段时间(40分钟至2小时)后,GC会收集它们,并且该应用程序仅使用23 mb的ram就可以正常运行。

我如何管理这90 mb?

为什么一段时间后GC会收集并且内存使用率达到23 mbs?

我将为ANTS快照。

如果有人在此快照中发现任何与内存相关的问题,请随时发表评论并指出。我对计算机科学非常了解,实际上有3个月的经验,有很多东西可以学习。

请原谅我的英语,而不是我的主要语言。

0 个答案:

没有答案