我很长一段时间都忽略了这个工具,因为它只是.NET。
根据 MSDN,诊断工具适用于 native 代码,在调试中的 Visual Studio 2015 中编译。
我正在关注: https://learn.microsoft.com/en-us/visualstudio/profiling/memory-usage
我在“诊断工具”窗口的“内存使用”选项卡下启用“堆分析”。然后我重新构建所有项目,确保每个项目的工具集都是“Visual Studio 2015”,并确保为每个 dll 或 exe 项目构建 PDB。当客户端连接到我的进程时,我在 main 设置了一个断点,然后客户端发送了数据。中间有数千次对 new 的调用。每次我点击“拍摄快照”。当我单击拍摄快照时,会出现一行,其中包含时间、分配和堆大小。后两者归零。
如果我对我的一个单元测试做同样的事情,它们就会被填满,我可以按照文档中的描述向下钻取。
我应该寻找什么才能让它与我的主要项目一起工作? 是否有特定的链接设置?我正在构建静态库和动态库是否重要?有什么具体要寻找的吗?
最佳答案
我遇到过类似的问题(vs2015 或 vs2017 在堆上显示 0 分配)。 然后我注意到我的 gflags 启用了整页堆验证(可以通过 gflags/p 检查)。
我刚刚禁用它,现在堆快照又开始工作了:-)
关于c++ - Visual Studio 诊断 - 内存使用快照显示 0 分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141934/