在 WPF 中使用 BitmapImage 类时,要注意内存占用可能会持续走高的一个问题
如果通过 BitmapImage 类不断的打开图片文件(在窗口中加载很多图片,尤其是大体积图片的话),会使 WPF 程序的内存占用持续走高,直到内存耗尽报出异常。
通过内存跟踪查看,占用过多的都是 Unmanaged 部分,并不是 .net 对象。
暂时还没有探索到具体原因,目前看到一个比较有效的方法就是在加载图片完成后
调用 BitmapImage 对象的 Freeze 方法,虽然一开始内存仍然会持续走高
但是在内存即将耗尽或下次内存回收时,会根据情况释放之前占用的过多内存,不会一直持续走高直到耗尽。
也许通过 Freeze 方法释放了某些不必要的保留数据吧。。。有待进一步研究。
输了你,赢了世界又如何...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界