【问题标题】:how to profile silverlight mvvm application with a lot of custom controls如何使用大量自定义控件分析 silverlight mvvm 应用程序
【发布时间】:2011-02-22 19:03:08
【问题描述】:

有一个相当大的 LOB silverlight 应用程序,我们编写了很多自定义控件,这些控件的绘制相当繁重。

所有数据都由 RIA 服务加载、处理并绑定(使用 INofityPropertyChanged 接口)到视图。

问题是第一次绘图需要很长时间。对服务(服务器)的调用和重绘非常快。

我使用 Equatec 分析器来跟踪问题。我看到处理只需要几毫秒,所以我的想法是 SL 引擎的绘图很慢。

我想知道是否可以在 SL 中以某种方式分析进程,以检查哪些绘图操作花费了太多时间。是否有任何指南如何实现更快地绘制复杂的自定义控件?

【问题讨论】:

    标签: silverlight performance silverlight-3.0 profiling


    【解决方案1】:

    简短的回答是 - 不,没有超级简单的方法可以找出您的应用程序运行缓慢的原因。

    长答案:
    我从未使用过用于 Silverlight 的 Equatec 分析器,但它似乎类似于 dotTrace。无论哪种方式,它们最终都会显示与 xPerf 相同的信息。
    基本上,您应该掌握的信息是说明哪些方法和类占用了最多的时间来执行。

    如果该信息指向 Silverlight 框架图形引擎(agcore.dll 和 npctrl.dll),您将不得不开始一个缓慢的过程来找出您做错了什么。
    在这一点上,我强烈建议您观看 Seema Ramchandani 关于 Silverlight 性能的每一次演讲。特别是PDC08Mix09Mix10

    性能优化的第 1 步:衡量。措施。测量。
    对您要改进的内容有一个清晰的基线,并为性能何时足够好设定一个数字期望值。
    这样,您可以验证您的更改是否对性能产生了积极影响。

    性能优化的第 2 步:开始删除内容。
    在您的情况下,我将开始在表单中注释掉控件。当性能大幅提高时,您就找到了罪魁祸首。

    性能优化的第 3 步:尝试修复薄弱环节。

    这就是我要解决这个问题的方式。

    此致
    ——贾斯汀安吉尔

    【讨论】:

      【解决方案2】:

      尝试使用 Visual Studio 分析器进行分析,以便更好地衡量您的托管代码和在 Silverlight 中执行的本机代码。分析器将帮助您指出您花费最多时间的地方(热路径是什么)以及您是否将其花费在框架 (SL) 代码或您自己的代码中。

      分析的基础是:

      1. 打开 Visual Studio 命令提示符(以管理员身份),“cd”到 DLL 和 PDB 文件所在的目录(通常是“Debug”文件夹)
      2. VSPerfClrEnv /sampleon
      3. VSPerfCmd -start:sample -output:somefile.vsp VSPerfCmd -globalon VSPerfCmd -launch:"c:\Program Files (x86)\Internet Explorer\iexplore.exe" -args:""
      4. VSPerfCmd -shutdown
      5. VSPerfClrEnv /off

      您可以在我的博客上找到有关使用分析器的详细说明:http://www.nachmore.com/2010/profiling-silverlight-4-with-visual-studio-2010/

      如果您发现自己花时间在 Silverlight 中,请跟踪代码路径以查看您的代码在哪里触发了代价高昂的调用,然后您可以根据速度变慢的原因调查具体的解决方案。

      希望对你有帮助,

      • 欧伦

      【讨论】:

      • 这是一个很好的观点,我应该指出这一点。不幸的是,配置文件仅适用于 Premium 和 Ultimate...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多