C#-GDI内存开销问题解决方案

发布于 2016-11-03 10:20:14 字数 154 浏览 1088 评论 2

最近在工作中遇到GDI内存问题:
在32位系统中
使用GDI绘制700*700矩形,10万次,内存开销为26M。
使用GC强制回收内存开销降至9M。
问,在不使用GC的情况下,有什么办法可以减少GDI内存损耗?
注:绘制完毕时GDI资源已经释放

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-09-04 05:51:42

现已查明,内存损耗最大的是Brush类型,由于Brush类型是非托管类型资源,所以不会被c#中GC自动回收,需要手动使用Dispose()释放,否则每new一个这样的实例,就会占用相当大的内存,且不会被释放。对程序来说是一个隐患。
谢谢楼上那位发表的见解了,虽然回答的不对。

浮生未歇 2017-05-11 20:34:36

说一下我的一点看法,不对请指正。
你的内存损耗是不是主要是开临时图像,如bitmap对象,如果是的话可以不用每次new一个新的图,直接把原来的图擦掉重新画好了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文