虚拟机中的 Visual Studio Profiler

虚拟机中的 Visual Studio Profiler

我无法使用虚拟机中的 Visual Studio 分析器分析任何应用程序。我在工作时使用过 Amazon EC2 虚拟机,在家时使用过 Virtualbox 和 Vmware。我还使用过 AMD Codeanalyst 分析器。但这些组合都不起作用。

  1. 有人知道吗为什么它不工作?
  2. 我怎么能够让它起作用
  3. 你知道任何良好的性能分析器

答案1

虚拟机中的分析器存在一些问题:

  • 时间实际上无法虚拟化,因此时间戳所告诉您的信息比您想要的要少。这是因为虚拟处理器不会连续运行,而虚拟机系统的设计人员必须在跟踪外部时钟(如墙上的时钟)的时间和虚拟机内似乎连续流逝的时间之间做出选择。为了使网络协议正常工作,几乎每个人都选择跟踪外部时间。然而,分析器通常针对任务所花费的时间,这是相反的选择。

  • 在 Windows 中,分析是通过硬件时钟完成的,该时钟在常规机器操作期间通常不使用。(具体来说,是本地 APIC 计时器。)如果这些虚拟机没有实现该时钟,我也不会感到惊讶,因为他们从未见过客户真正打开它。我使用 Hyper-V,它确实实现了该时钟,所以我无法对 Virtual Box 或 VMWare 发表评论。

答案2

http://blogs.msdn.com/b/mgoldin/archive/2010/01/09/visual-studio-profiler-in-virtual-environment.aspx

这里有一些来自 VS 性能团队的信息。似乎 Visual Studio 2010 在虚拟化下具有基于采样的分析支持。但我观察到,这是他们添加到 Visual Studio 中的代码来处理它,并且似乎可以与 VMWare、Hyper-V 和 VPC 配合使用。它似乎在 VirtualBox 下不起作用(今天已确认 4.0 已支持)

我准备在 VMWare Player 下测试使用 VirtualBox 创建的设备,看看它是否能正常工作。好消息是,您可以使用基于 Visual Studio 2010 示例的分析来分析使用 2008 构建的代码。

相关内容