微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VS 性能分析器 - 内存使用情况快照仅包含约 20% 的私有字节内存

如何解决VS 性能分析器 - 内存使用情况快照仅包含约 20% 的私有字节内存

我正在分析我的 C++ 应用程序的内存开销。我使用 Visual Studio 2019 Performance Profiler 收集了一个内存使用快照。但是,快照仅包含在“诊断”选项卡(或 Process Explorer 应用)中报告为“私有字节”的内存的 ~20%

我怀疑一些未计算的内存是基于堆栈的内存,堆捕获的内存不会覆盖,但与堆相比,我希望它的大小是微不足道的,对吗?系统有足够的可用内存 (100+ GB),所以我不希望 80% 的私有字节在页面文件中,以防内存使用情况快照无法捕获?任何关于如何了解所有内存在哪里(即其中有多少是基于堆栈的内存等)以及或如何使用相应的堆栈捕获所有内存的建议?

Snapshot_vs_Diagnostics_Sizes - two captures of the app with two different usage amounts

解决方法

带有 Heap + VirtualAlloc 选项的 Windows Performance Recorder 跟踪提供了所有内存堆栈的跟踪并解决了我的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。