Silverlight性能优化

Silverlight性能优化

性能优化


监视性能(FPS)
Silverlight的呈现性能会因指定的宿主参数和内容的复杂程度而异。
为了监视FPS的值我们在开发的过程中将EnableFrameRateCounter 属性设置为 true。这样浏览器的状态栏中显示所呈现的 Silverlight 内容的每秒帧数 (fps),以便您可以微调应用程序。
以下有两种设置EnableFrameRateCounter的方法:
1.在Object标签的属性里设置
 

<param name="EnableFrameRateCounter" value="true" />

 


2.在cs代码中设置

 

System.Windows.Interop.SilverlightHost host = Application.Current.Host;
System.Windows.Interop.Settings settings
= host.Settings;
settings.EnableFrameRateCounter
= true;
settings.MaxFrameRate
= 60;

 


显示效果:

 

 


性能优化注意的地方:


1.谨慎使用透明背景
Silverlight 插件使用透明背景会对性能产生很大影响,因此应尽可能避免使用此功能。例:

<param name="background" value="Transparent" />
<param name="Windowless" value="true" />

 


2.尽量使用各种加速与缓存
对进行动画处理的元素设置其CacheMode属性为true
对进行动画处理文本文本元素设置TextRenderingMode属性为RenderForAnimation
对使用不透明度对象和旋转或拉伸对象设置其CacheMode属性为true
3.尽可能使用 Visibility 而不是 Opacity
如果想设置某个元素不可见,尽量使用Visibility,由于Silverlight的渲染技术Opacity会持续消耗系统资源。通过设置enableRedrawRegions属性你可以更加直观的看出他们的不同,例:

<param name=“enableRedrawRegions” value=“true” />

 


4.不要对MediaElement与Path元素设置Width与Height
设置这些属性将导致额外的拉伸,这会影响性能。
5.呈现大量图像时使用 Stretch="Fill"
Fill,None 之外的所有其他类型的拉伸都需要计算布局(例如计算居中)。
6.大量数据处理的时候尽量运用BackgroundWorker
在大量数据处理时,会导致插件会停止绘制。

参考资料:

 


http://msdn.microsoft.com/zh-cn/library/cc189071(VS.95).aspx
http://www.cnblogs.com/alamiye010/archive/2009/08/29/1556398.html
http://www.silverlightbuzz.com/2009/11/17/optimizing-silverlight-with-enable-redraw-regions/

 

 

 

作者:Nasa 
文章出处:我和未来有约会 (http://nasa.cnblogs.com/
版权声明:本文的版权归作者与博客园共有。转载时须注明本文的详细链接,否则作者将保留追究其法律责任。
posted @   王喆(nasa)  阅读(2851)  评论(1编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2009-01-12 内部交易令火车票一票难求
点击右上角即可分享
微信分享提示