【问题标题】:Visual Studio Diagnostics - Memory usage Snapshot shows 0 AllocationsVisual Studio 诊断 - 内存使用情况快照显示 0 分配
【发布时间】:2018-06-01 19:23:16
【问题描述】:

我忽略了这个工具很长一段时间,因为它只是 .NET。

根据 MSDN,诊断工具适用于本机代码,在 Visual Studio 2015 的调试中编译。

我正在关注: https://docs.microsoft.com/en-us/visualstudio/profiling/memory-usage

我在“诊断工具”窗口的“内存使用”选项卡下启用了“堆分析”。然后我重新构建所有项目,确保每个项目的工具集都是“Visual Studio 2015”,并确保为每个 dll 或 exe 项目构建 PDB。当客户端连接到我的进程并在该客户端发送数据之后,我在 main 处设置了一个断点。中间有数以千计的 new 调用。每次我点击“拍摄快照”。当我单击拍摄快照时,会出现一行,其中包含时间、分配和堆大小。后两者归零。

如果我对我的一个单元测试执行相同的操作,它们会被填写,我可以按照文档中的说明进行深入研究。

我应该寻找什么才能让它与我的主要项目一起工作? 是否有特定的链接设置?我正在构建静态库和动态库是否重要?有什么具体要寻找的吗?

【问题讨论】:

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


    【解决方案1】:

    我遇到过类似的问题(vs2015 或 vs2017 在堆上显示 0 个分配)。 然后我注意到我的 gflags 启用了整页堆验证(可以通过 gflags /p 检查)。

    我刚刚禁用了它,现在堆快照又开始工作了 :-)

    【讨论】:

    • 为了澄清遇到相同问题的任何人,在使用应用程序验证器时可能会发生这种情况,它基本上是 gflags 的 UI。清除 AV 中的标志后,堆分析和快照在 VS2015 和 2017 中都可以正常工作。
    猜你喜欢
    • 2023-04-04
    • 2018-02-20
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 2015-08-20
    相关资源
    最近更新 更多