自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Silverlight性能優(yōu)化具體方法介紹

開發(fā) 開發(fā)工具
Silverlight性能優(yōu)化一般可以通過盡量使用輕量級的控件;在對象動畫過程中不要碰觸它的Opacity屬性;使用CompositionTarget.Rendering 事件啟動逐幀動畫(循環(huán))等方法來實現(xiàn)。

對于開發(fā)人員來說,運用一款工具開進行開發(fā)程序的時候,肯定會想盡一切辦法來使這款工具的運用效能達到一個更高的境地。那么對于Silverlight的使用也是一樣。我們先來看看Silverlight性能優(yōu)化的具體方法。#t#

Silverlight性能優(yōu)化1)盡量使用輕量級的控件

這在WPF中表現(xiàn)得極為明顯,讓我記憶最為深刻的就是FormattedText、TextBlock和Label這3個控件,從左至右性能消耗越多,往往習(xí)慣了隨便拖控的朋友剛接觸WPF時一看到熟悉的Label就拖它一個出來,F(xiàn)ormattedText就不說了,TextBlock擁有與Label幾乎一樣的功能,因此希望看過本文的朋友注意了,WPF開發(fā)中盡量選擇輕量級的控件。而由于Silverlight是WPF的子集,所以它的控件幾乎都是經(jīng)過濃縮與優(yōu)化的,因此只需特別注意布局控件的選擇;Canvas是性能較好且易于使用的布局控件,本文強力推薦。

Silverlight性能優(yōu)化2)在對象動畫過程中不要碰觸它的Opacity屬性

舉個最簡單的例子,如果一個物體在做水平動畫移動,此過程中你為它添加了一個鼠標懸停事件,事件內(nèi)容為修改它的Opacity屬性為半透明,然而當你運行程序后卻會發(fā)現(xiàn)當你把鼠標停在正在移動的該物體上時,會導(dǎo)致該物體運動的短暫不平滑(類似跳幀),這就是因為直接修改元素的 Opacity 屬性會迫使系統(tǒng)創(chuàng)建一個臨時的 Surface,這個過程是需要消耗一定性能的,切記。

Silverlight性能優(yōu)化3)使用CompositionTarget.Rendering 事件啟動逐幀動畫(循環(huán))

實現(xiàn)動畫的方式有多種,如果您需要實現(xiàn)高密度的基于畫面刷新的動畫,那么建議使用CompositionTarget.Rendering 事件。并且注意了下面才是關(guān)鍵,在Silverlight中您需要非常默契的限制好參數(shù)MaxFrameRate,它可以根據(jù)客戶電腦配置及時時的性能消耗調(diào)節(jié)畫面的刷新率,相當于您的動畫機器保姆。我個人的建議,將MaxFrameRate設(shè)置在45-60這個段內(nèi),這樣最接近您液晶顯示器的刷新率(有人說將之設(shè)置為1000會使動畫極其流暢;沒錯,您的目的是達到了,但是將導(dǎo)致您的CPU瘋狂的運做,我想這不是您想要的結(jié)果吧),在繁忙時即不會過度消耗性能,又能讓您得到清晰且流暢的視覺享受。

Silverlight性能優(yōu)化4)盡量使用各種加速與緩存

在WPF中大家可以通過降低圖片的質(zhì)量以換取性能的提升;在Silverlight中可以啟動EnableGPUAcceleration然后通過設(shè)置各Uelement對象的CacheMode="BitmapCache"來實現(xiàn)GPU加速支持(此方法目前存在于3.0版本中,并且倍受爭議)。

WPF/Silverlight應(yīng)用程序為了讓用戶得到較好的交互體驗,均會使用大量的圖形、媒體與動畫,目前的個人電腦配置1G+內(nèi)存都算低端了,因此大家不妨多考慮利用空間換時間,將這些資源盡量的緩存,每次調(diào)用時首先檢索是否存在于緩存中,然后才考慮重新加載。這給頻繁的資源素材切換提供了快速且可靠的通道,消耗的僅僅是閑置無用的一點點內(nèi)存而已。

Silverlight性能優(yōu)化5)適當?shù)臅r候使用關(guān)聯(lián)屬性將給您帶來意外的驚喜

綁定關(guān)聯(lián)屬性(DependencyObject)是***效率的事情,無論是WPF還是Silverlight;定義好帶回調(diào)方法的關(guān)聯(lián)屬性,僅當關(guān)聯(lián)屬性被修改后才通知界面更新,這才是關(guān)聯(lián)屬性最有性能的使用方式。但是,如果您亂用或過度使用關(guān)聯(lián)屬性,將導(dǎo)致整體性能的大幅度降低,其實一些普通的對象屬性是完全可以用CLR屬性代替的,這即為從細節(jié)中抽離出性能原理。

Silverlight性能優(yōu)化6)將后臺工作者(BackgroundWorker)看做您的左膀右臂

BackgroundWorker是從Winform年代即存在的一個偉大控件,使用它配合界面的Dispatcher進行跨線程的后臺異步委托是兼具性能與友好體驗的處理方式。大家不妨在頭疼大量數(shù)據(jù)處理的時候,將BackgroundWorker視為您的左膀右臂,您會發(fā)現(xiàn)過程原來是可以這么簡單的。

目前暫時先寫這6點建議吧,如果有不對或不妥處,還望大家指正。同時大家應(yīng)該詳細閱讀本文開頭呈現(xiàn)的兩個msdn地址中關(guān)于WPF/Silverlight性能提升的提示,只要您都做到了,我相信任何產(chǎn)品都能通過您的手發(fā)揮出***的性能。
 

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-31 14:12:40

Silverlight

2009-12-16 15:04:26

Ruby實現(xiàn)strea

2022-01-12 07:48:18

首屏前端性能

2009-11-23 15:10:28

PHP獲取當前url

2009-12-01 13:41:49

靜態(tài)路由設(shè)置

2009-11-30 11:24:49

PHP將EXCEL導(dǎo)入

2009-12-01 09:52:40

PHP過濾字符串

2010-05-12 10:29:51

MySQL數(shù)據(jù)庫

2009-11-24 17:25:00

PHP二維數(shù)組排序

2010-07-21 14:33:01

刪除telnet

2009-12-29 18:02:26

SilverLight

2011-04-01 13:34:12

zabbix

2009-12-03 14:43:46

phpMyAdmin配

2009-12-29 18:34:21

Silverlight

2009-12-15 13:47:33

Silverlight

2009-12-31 17:21:41

Silverlight

2010-04-23 13:53:29

Oracle密碼

2009-12-25 16:52:57

網(wǎng)絡(luò)接入控制

2009-11-23 19:16:32

路由器測試

2010-02-06 11:19:33

C++獲取文件
點贊
收藏

51CTO技術(shù)棧公眾號