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