c++ - Visual Studio 诊断 - 内存使用快照显示 0 分配

标签 c++ visual-studio-2015 native memory-profiling

我很长一段时间都忽略了这个工具,因为它只是.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/

相关文章:

c++ - 带有 char16_t 或 char32_t 的 Visual Studio C++ 2015 std::codecvt

c# - 对枚举类型名称的编辑未反射(reflect)在 VS2015 *.settings 文件 C# 中

binding - Xamarin:使用 native 库

C++:正则表达式模式

c++ - 从函数中寻找最小值的启发式算法

c++ - 为什么要求自定义分配器是可复制构造的?

c++ - VC++ 可再发行版 2012 或 2013 或 2015?

Java System.loadLibrary ("m") 在 AIX 6.1 上失败

javascript - React Native - 状态未正确更新

c++ - 如何判断是使用 '->'还是 '.'