我下载了Red Gate ANTS Memory Profiler并对我的应用进行了分析。我注意到我的应用程序分配了大量非托管内存(160MB)。所以我再次运行了探查器,启用了非托管内存分析。非托管内存的细分如下:
WindowsCodecs:45.19MB CLR:43.21MB 由托管代码分配:30.23MB 在分析开始之前分配:2.047MB d3d9:595.5KB 其他模块:67.27MB
其他模块还包含红门内存分析器,占67.27MB的64.94MB。
通过阅读Red Gate文档,加载CLR预计大约为40MB,我的托管代码分配30MB似乎是合理的。但我对WindowsCodecs占用45MB感到困惑!我假设WindowsCodex与视频编解码器或播放有关。我的应用程序不使用Windows Media Player媒体控制,也不进行任何类型的媒体播放(音频或视频)。
有人碰到这个吗?看来我的应用程序可以减少45MB的内存占用量,如果我能弄清楚这种依赖性是什么。