CTP5中的本地内存诊断


[原文发表地址]:Native Memory Diagnostics in CTP5

[原文发表时间]:2015/1/29 1:02 AM

VS2015 CTP 5中,Visual Studio的内存使用率工具现在是被默认选中的。当您在CTP5中初次调试一个本地app时,诊断工具将会启动,并且内存使用率CPU使用率两个工具都会显示出来,因为两者都是默认被选中的。关于诊断工具窗口和其他工具的更多信息,请查阅Dan Taylor的这篇博客贴

通过点击选择工具,您可以启用/隐藏这些工具。出于这篇博客的目的,我仅选择了内存这一个工具以简化截图。

注意在此窗格的底部有一个用来在下次调试会话中启用堆快照的选项:

默认情况下,本地快照是隐藏的,以保持调试时的运行时性能。下面窗格中的描述解释了这项功能的用途和其对内在性能影响:

一旦把快照开关设置为Yes,重启编译器后快照卷将会在您随后的调试会话中开始工作:

本地与托管的:堆分析开销的不同之处

由于托管的内存分析器无法对进程中的开销进行处理而是要等到收集结束,运行时的影响是微不足道的,所以堆快照是默认启用的。由于两个内存工具在诊断工具窗口中共享了一个复选框,我们为本地应用启用快照添加了一个附加选项,用以在今后的调试会话中保存F5运行时性能。依赖于内存分配的数量和使用率,运行时放缓的可能范围,从大约20%到对于分配密集的应用程序高达3倍左后不等(基于我们最初的测试)。这样的运行时开销,在今天这样一个内存分配跟踪工具和其他能比得上的可用工具中是不幸的也是不可避免的。

今后我们计划为内存使用率工具添加一系列选项,开发人员可以在对一个应用程序开始调试会话之前启用本地堆快照,与之前可用的上一版本的内存分析器相似:

现已支持64位!

在我上一篇博客帖中有很多要求支持64位的声音,所以我非常高兴地宣布我们现在已经支持分析:

  • 64位本地Win32工程
  • 64位托管桌面工程

支持64位的Windows商店应用程序分析很快将会实现。请尝试此工具并告诉我们您的想法!

 

谢谢!

Adam Welch

VisualC++团队


Comments (0)

Skip to main content