我在我的一个应用程序上运行了Debug Diagnostics Tool v1.2(通过PINVOKE使用C ++ dll的.NET应用程序),它显示以下警告:
usp10.dll负责9.25 MB的未完成分配。以下是前2个内存消耗函数: usp10!MapFullFile + 14:9.19 MBytes的未完成分配。 usp10!AllocateCMAPtables + e6:18.50 KB的未完成分配。
我不知道这个USP10.DLL来自哪里。谷歌告诉我这是some service to render unicode-encoded text。我有什么想法看到这个警告?
答案 0 :(得分:4)
Usp10.dll是Uniscribe脚本处理器。它处理正确的文本格式,任何向屏幕输出文本的程序都依赖于它。 CMap是一种字体数据结构。您所看到的是缓存字体数据,每次需要数据时从字体文件中检索它太昂贵并且会使文本渲染速度太慢。
在卸载DLL之前,这样的缓存不会被破坏。那么你真正看待的是你工具中的一个缺陷。在正常进程清理发生之前,它会报告内存泄漏太快。您应该向供应商提交缺陷报告。