使用 VS2010 Profiler 进行内存测量

Posted

技术标签:

【中文标题】使用 VS2010 Profiler 进行内存测量【英文标题】:Using VS2010 Profiler for memory measurement 【发布时间】:2011-01-19 23:33:07 【问题描述】:

我正在寻找使用内置 Visual Studio 2010 Profiler 来测量内存 在 Windows 应用程序中使用我的 C# 函数,但我不知道如何。

我在网上搜索了如何使用 VS2010 Profiler,但所有链接都建议使用与 Web 应用程序相关的 Silverlight,而不是 Windows 应用程序

如果有人可以告诉我如何在 C# Windows 应用程序中使用 VS2010 Profiler,或者如果缺少某些内容,请给我发送链接或教程或任何提示,非常感谢

【问题讨论】:

你使用的是哪个版本的 VS 2010? 我使用的是版本 10.0.303019.1 RTMRel,专业版 请看我的回答。内置托管内存分析仅存在于 Premium 和 Ultimate 中。抱歉,它在 Professional 中不可用。 【参考方案1】:

(完全披露:我在开发此功能的团队中。)

VS2010 Profiler 仅在 Premium 和 Ultimate 版本中可用。有许多资源可用于进行托管内存分析。有些较旧,但仍然相关:

博客:The Object Allocation and Object Lifetime views 博客:What code path is allocating the most bytes for a type? 博客:Using VSTS 2008 memory allocation profiling MSDN:Collecting .NET Memory Allocation and Lifetime Data

对象分配分析将向您显示分配对象的位置以及分配的每种类型的聚合统计信息(大小和计数)。对象生命周期向您显示对象的收集时间(第 0、1、2 代)以及对象是否在大对象堆中。

【讨论】:

这种分析是否在混合模式下工作?我需要在一起使用 Microsoft C# 和 Intel C++(通过 Intel Parallel Studio)的应用程序中分析内存使用情况。 @DmitriNesteruk:是的,VS 内存分析适用于纯托管、使用本机代码托管和混合模式(例如 C++/CLI)代码。我们只会收集您计划的托管部分的数据。我们目前不进行任何本机内存分析。

以上是关于使用 VS2010 Profiler 进行内存测量的主要内容,如果未能解决你的问题,请参考以下文章

VS2013 Profiler:收集数据的位置

如何使用 NVIDIA Visual Profiler 测量每个扭曲的银行冲突?

Flash 播放器内存使用 - Flash builder profiler vs Activity monitor

VS2010中的CPU采样通过附加到进程?

VS2010分析器/泄漏检测

测量软件使用感受