65.9K
CodeProject 正在变化。 阅读更多。
Home

Silverlight 性能向导

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.71/5 (5投票s)

2010年12月22日

CPOL

3分钟阅读

viewsIcon

31376

直接通过 Visual Studio 分析 Silverlight 应用程序的性能。

引言

我之前在我的博客上写了这篇文章,并想把它也发布在 CodeProject 上。

文章

微软已经发布了 Visual Studio 2010 的第一个 Service Pack。虽然 Service Pack 标记为 beta 版,但它附带了“go live”许可证。 随之而来的是另外两个 Service Pack:Team Foundation Server 2010 SP1 Beta 和 .NET 4.0 SP1 Beta。 对于 Silverlight 开发人员,他们在 Visual Studio 2010 SP1 Beta 中打包了两个更新。

  1. Silverlight 4 适用于 Visual Studio 2010 的工具:“Silverlight 4 工具现在包含在 Silverlight 3 支持中”,这意味着您不必单独安装 Silverlight 4 工具。
  2. Silverlight 的性能向导:这将使用户能够直接通过 Visual Studio 分析 Silverlight 应用程序的性能,用户可以创建性能分析报告并保存它们。

您可以从 Brian 的博客获取下载链接,他在 Service Pack 中详细介绍了所有重要的更新 http://blogs.msdn.com/b/bharry/archive/2010/12/07/vs-tfs-2010-sp1-beta-has-released.aspx

下载 Web 安装程序后,请耐心等待,因为安装需要一些时间来下载并安装软件包。 对我来说,整个过程大约花了一个小时。 成功安装后,系统会要求您重新启动计算机。 现在,您的 Visual Studio 已经准备好使用向导开始分析您的 Silverlight 应用程序的性能了。

性能向导非常简单。 让我们逐步进行,打开一个现有的 Silverlight 项目或创建一个新项目。 要启动“性能向导”,请转到主菜单找到“分析 –> 启动性能向导…”

1.png

应显示性能向导页面 1/3,如果未选中 CPU 采样,则默认情况下必须选中。如果不是,请勾选 CPU 采样前的单选按钮。

2.png

性能向导页面 2/3 - 在此页面上,您将找到一个项目列表,具体取决于您的解决方案的结构。 通常对于 Silverlight 项目,您将在列表中找到 Silverlight 应用程序和 Web 应用程序,选择您的 Silverlight 应用程序并单击“下一步”按钮。

3.png

性能向导页面 2/3 只是一个摘要,说明已收集所有需要的信息。 确保在此页面上选中标记为“向导完成后启动性能分析”的复选框。 当您单击完成时,应用程序应该会在您的默认浏览器中打开。

4.png

如果您没有以管理员身份运行,您可能会收到一条错误消息,提示“无法打开分析器驱动程序,您想升级凭据吗…” 。 只需单击“是”并在需要时提供管理员凭据。

5.png

完成上述步骤后,性能浏览器将填充一个类似于下图的结构。 性能向导创建了两个文件夹,ReportsTargets

6.png

好的,现在让我们进行一个简单的性能测试。 让我们创建一个简单的应用程序,看看性能报告是什么样子的。 创建一个 Silverlight 应用程序。 在您的主页面中,添加一个按钮,在单击该按钮时,我们应该有一个执行某种 CPU 密集型活动的函数。 我只是简单地创建了一个嵌套循环,让 CPU 忙碌一会儿,但是您可以编写任何 CPU 密集型的代码。

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
  for (int i = 0; i < 100000; i++) 
  { 
     for (int j = 0; j < 10000; j++) 
     { 
     } 
   }
}

现在按照上述步骤使用向导生成性能分析报告,运行项目,单击该按钮几次,然后关闭浏览器。 Visual Studio 将根据性能分析期间收集的样本调出可视报告。 下图显示了我的测试结果,人们可以清楚地在图中识别出第一次和第二次点击期间 CPU 的峰值。 一个有趣的事实是,Studio 将自动显示在资源方面成本高昂的方法的调用树。 对于我们的例子,事件处理程序Button_Click() 执行一个耗费资源的 for 循环,并且 Studio 能够识别该方法并显示调用层次结构。

7.png

关注点

历史

  • 2010 年 12 月 22 日:初始发布
© . All rights reserved.