如何分析的Silverlight MVVM应用了大量的自定义控件

有一个相当大的LOB Silverlight应用程序,我们写了很多自定义控件这是相当沉重的绘画。

所有数据都通过RIA服务加载,处理和边界(使用INofityPropertyChanged接口)视图。

问题是,第一描绘需要花费很多时间。 继调用服务(服务器),并重新划分是相当快的。

我用Equatec探查跟踪问题。 我看到处理需要几毫秒的只是为了让我的想法是,通过SL的发动机图纸很慢。

我想知道是否有可能以某种方式处理配置文件里面SL检查绘制操作正在采取太多的时间这。 是否有任何指引如何实现复杂自定义控件的快速绘制?

--------------解决方案-------------

简短的回答是 -没有,有弄清楚为什么你的应用是缓慢的没有超级简单的方法。

的回答:
我从来没有使用Equatec探查Silverlight的,但它似乎类似于dotTrace。 无论哪种方式,他们都最终呈现出相同的信息xPerf。
基本上你应该在你面前的信息是说哪个方法和类占去了大部分时间来执行。

如果信息点回的Silverlight框架图形引擎(agcore.dll和npctrl.dll),你就必须开始弄清楚你做错了什么的一个缓慢的过程。
在这一点上,我强烈建议你看每一个通话希玛Ramchandani了有关Silverlight的性能。 具体PDC08,MIX09和MIX10。

步骤#的PERF的优化1:测量。 测量。 测量。
有你想提高什么明确的基准,并设定一个数值的期望时的表现不够好。
这样,你可以验证您的更改对性能产生积极的影响。

步骤#的PERF的优化2:开始删除的东西。
在你的情况,我会先注释掉控制出关的形式。 当PERF大规模提高,你发现你的罪魁祸首。

步骤#的PERF的优化3:尝试解决的薄弱环节。

这就是我会去解决这个问题。

此致
- 贾斯汀天使

尝试与Visual Studio分析器,以获得一个很好的措施的托管代码,并在Silverlight中执行本机代码分析。 探查会帮助你指出的地方你花你的大部分时间(什么是热路径的是),以及是否您在框架花钱(SL)代码或您自己的代码。

分析的基础是:

  1. 打开Visual Studio命令提示符(作为管理员),“CD”到你的DLL和PDB文件的目录(通常是你的“调试”文件夹中)
  2. VSPerfClrEnv / sampleon
  3. VSPerfCmd -start:样品 - 输出:somefile.vsp VSPerfCmd -globalon VSPerfCmd -launch:“C:\ Program Files文件(x86)的\的Internet Explorer \ IEXPLORE.EXE”-args:“”
  4. VSPerfCmd -shutdown
  5. VSPerfClrEnv /关

您可以使用事件探查器在我的博客的详细说明:http://www.nachmore.com/2010/profiling-silverlight-4-with-visual-studio-2010/

如果你发现你在Silverlight中花费的时间,追踪代码路径,看看你的代码触发了昂贵的调用,因此,基于慢下来的原因,你可以再研究具体的解决方案。

希望帮助,

  • 奥伦
分类:Silverlight的 时间:2015-03-15 人气:2
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.685 (s). 10 q(s)