12

我想探索如何在我的应用程序中分配内存。我有 C# 控制台应用程序并使用 Visual Studio 2013 Professional。

我去分析->性能和诊断并选择.NET内存分配

在此处输入图像描述

结果,我得到以下摘要:

在此处输入图像描述

在图表中每次的 CPU 使用率(%)。但是我怎样才能看到每次分配内存和 GC 事件呢?我在这里找不到。

4

3 回答 3

5

我在 msdn 博客上读到这个检查工具不是面向内存泄漏检查的,所以没有为未来版本计划的这些功能。这适用于大型堆检查。

http://blogs.msdn.com/b/dotnet/archive/2013/04/04/net-memory-allocation-profiling-with-visual-studio-2012.aspx

大约是 2012 年,但似乎仍然没有改变。

于 2013-11-18T22:56:19.663 回答
4

添加到@L.Trabacchin 的答案,您应该看看JetBrains 的dotMemory(以前称为dotTrace Memory,见该页底部)。有一个试用版,根据我的个人经验,我不能推荐它。这是一个非常有用的工具。

于 2013-11-18T23:05:28.627 回答
3

这篇博客文章提供了有关如何通过分析 VS 2013 中的转储文件来分析内存泄漏的信息,但有一些要求在下面突出显示。 http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/20/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production.aspx

要使用本文中讨论的“调试托管内存”功能:

  1. 该选项仅在Visual Studio 2013 Ultimate 版本的转储摘要页面中可用。如果您使用的是高级版或专业版,您将看不到该选项
  2. 收集转储文件的进程必须在.NET 4.5 或更高版本上运行。如果转储是在 3.5 或更早版本上收集的,则不会出现该选项,如果它是在 4.0 上收集的,它将无法启动并显示错误消息。
于 2014-05-06T13:26:31.377 回答