亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > Flex > 正文

flex 優(yōu)化技巧 收集[提升性能]

2024-09-12 17:51:10
字體:
供稿:網(wǎng)友
1、當(dāng)創(chuàng)建一個(gè)數(shù)組的時(shí)候避免用new操作符,用 var a:Array = [];而不用var a:Array = new Array();
2、快速的復(fù)制一個(gè)數(shù)組:
var copy : Array = sourceArray.concat ();
3、設(shè)置一個(gè)數(shù)組的值是非常忙的:
employees.push ( employee ); employees[2] = employee;
4、從一個(gè)數(shù)組中取得值的速度是設(shè)置一個(gè)數(shù)組值的兩倍快:
var employee : Employee = employees[2];
5、當(dāng)不需要一個(gè)類的實(shí)例的時(shí)候盡量用靜態(tài)的屬性或方法:
StringUtils.trim( "text with space at end " );
Class definition: package {
public final class StringUtils {
public static function trim( s : String ) : String {
var trimmed : String ; // implementation...
return trimmed;
}
}
}
6、在整個(gè)程序的生命周期中都不會(huì)改變的變量用const定義常量:
public const APPLICATION_PUBLISHER : String = "Company, Inc. ";
7、當(dāng)一個(gè)類不需要有子類的時(shí)候應(yīng)該將該類聲明為final類型的:
public final class StringUtils
8、變量和方法的長(zhǎng)度在As3中并不影響什么性能,但在別的語言中可能就有影響: someCrazyLongMethodNameDoesntReallyImpactPerformanceTooMuch();
9、將語句寫在一行上面并不會(huì)影響AS3程序的性能,但在別的語言中卻有影響:
var i=0; j=10; k=200;
10、在內(nèi)存占用上面if語句和switch語句并沒有什么區(qū)別:
語句:
if ( condition ) {
// handle condition
}
和語句:
switch ( condition ) {
case "A ": // logic to handle case A break ;
case "B ": // logic to handle case B break ;
}
占用的內(nèi)存是一樣的.
11、當(dāng)你的程序處理分支較多的時(shí)候,你應(yīng)該適當(dāng)?shù)呐帕兴麄兂霈F(xiàn)的順序,可以參照以下的方式進(jìn)行:
if ( conditionThatHappensAlot ) {
//處理經(jīng)常發(fā)生的業(yè)務(wù)邏輯
} else if ( conditionThatHappensSomtimes ) {
// 處理偶爾會(huì)發(fā)生的業(yè)務(wù)邏輯
} else {
// 處理幾乎不會(huì)發(fā)生的情況
}
12、Actionscript虛擬機(jī)(Flash Player)推薦在循環(huán)內(nèi)部用int而不是number,但是flash Player10在flash Player9的基礎(chǔ)上做了很多的改進(jìn),int,uint和number之間的轉(zhuǎn)換不在像以前那么慢了。
13、每個(gè)變量都應(yīng)該聲明一個(gè)確定的類型,解決那些沒有指定類型的警告信息活錯(cuò)誤信息。
14、盡量少用unint,它可能會(huì)非常慢,但是Flashplayer10做了改進(jìn),速度不像以前那么慢了:
var footerHex : uint = 0x00ccff;
15、循環(huán)遍歷的時(shí)候用int類型:
for (var i: int = 0; i < n; i++)
而不用:
for (var i: Number = 0; i < n; i++)
16、在用decimal的時(shí)候用number而不用int:
var decimal : Number = 14.654;
而不用:
var decimal : int = 14.654;
17、用乘法代替除法:
用100*0.01代替100/100
18、在for和while循環(huán)中用到的計(jì)算應(yīng)事先聲明好,而不是在循環(huán)中重復(fù)聲明.
for (..){ a * 180 / Math .PI ; } 應(yīng)該在循環(huán)的外部申明: toRadians = a*180/Math .PI ;
19、避免在循環(huán)中調(diào)用方法或計(jì)算:
var len : int = myArray.lengh; for (var i=0;i<len;i++){}
而不要用:
for (var i=0;i< myArray.lengh;i++){ }
20、用正則表達(dá)式進(jìn)行字符串的校驗(yàn),用String的方法進(jìn)行字符串的查找:
// postal code validation example using regular expressions
private var regEx:RegExp = /^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$/i;
private function validatePostal( event : Event ) : void {
if ( regEx.test( zipTextInput.text ) ) {
// handle invalid input case
}
}
// search a string using String methods
var string : String = "Search me ";
var searchIndex : int = string.indexOf ( "me " );
var search : String = string.substring ( searchIndex, searchIndex + 2 );
21、重復(fù)使用諸如DisplayObjects和URLLoaderReuse之類的物體,以保持"內(nèi)存平穩(wěn)".
22、使用組件或創(chuàng)建自定義組件時(shí)應(yīng)遵循Flex的組件模型,如下面的方法為組件創(chuàng)建時(shí)應(yīng)先后調(diào)用的方法.
createChildren(); commitProperties(); updateDisplayList();
23、盡量少用dataGrid這樣的重量級(jí)的組件,除非你用一個(gè)常規(guī)的list無法實(shí)現(xiàn)你要的功能。
24、避免用Repeater 控件創(chuàng)建scrollable數(shù)據(jù).
25、盡量避免使用setStyle()方法,這個(gè)方法在Flex框架里面是眾多代價(jià)敖貴的方法之一。
26、當(dāng)你用過多的容器嵌套的時(shí)候會(huì)較低應(yīng)用程序的性能:
<mx:Panel>
<mx:VBox>
<mx:HBox>
<mx:Label text ="Label 1 " />
<mx:VBox> <mx:Label text ="Label 2 " />
</mx:VBox>
<mx:HBox>
<mx:Label text ="Label 3 " />
<mx:VBox>
<mx:Label text ="Label 4 " />
</mx:VBox>
</mx:HBox>
</mx:HBox>
</mx:VBox>
</mx:Panel>
27、沒有必要每次都用容器組件作為你自定義組件的父控件:
<mx:Image xmlns:mx="http://www.adobe.com/2006/mxml " source="avatar.jpg " width ="200 " height ="200 " />
28、減少不必要的容器嵌套
29、不要在Panel中vBox和HBox,用Panel的Layout屬性就可以了
30、不要在application標(biāo)簽下用HBox,和Vbox,道理和29一樣
31、設(shè)置recycleChildren為true來提高Repeater的性能 (重用已經(jīng)創(chuàng)建過的children而不是重新創(chuàng)建一個(gè)新)
<mx:Script>
<![CDATA[
[Bindable]
public var repeaterData : Array = ["data 1 ", "data 2 "];
]]>
</mx:Script>
<mx:Repeater id="repeater " dataProvider="{repeaterData} ">
<mx:Label text ="data item: {repeater.currentItem} "/>
</mx:Repeater>
32、將應(yīng)用程序的幀率設(shè)置為60fps或者更低:
<?xml version ="1.0 " encoding="utf-8 "?>
<mx:Application xmlns:mx=http://www.adobe.com/2006/mxml frameRate="45 ">
</mx:Application >
33、避免每一幀進(jìn)行過多的顯示操作.
34、能用ENTER_FRAME事件就不用Timer事件.
public function onEnterFrame ( event : Event ) : void { }
private function init () : void {
addEventListener( Event.ENTER_FRAME, onEnterFrame );
}
而不用:
public function onTimerTick( event : Event ) : void { }
private function init () : void {
var timer : Timer = new Timer();
timer.start ();
timer.addEventListener( TimerEvent.TIMER, onTimerTick );
}
35、在多幀上面通過以下方式延遲物體的創(chuàng)建.
<mx:Container creationPolicy="queued "/>
36、Alpha = 0并不是visible = false (設(shè)置為invisible的物體會(huì)被忽略,不作任何處理)
loginButton.visible = false ;
而不用:
loginButton.alpha = 0;
37、性能優(yōu)化:
內(nèi)存釋放優(yōu)化原則
1. 被刪除對(duì)象在外部的所有引用一定要被刪除干凈才能被系統(tǒng)當(dāng)成垃圾回收處理掉;
2. 父對(duì)象內(nèi)部的子對(duì)象被外部其他對(duì)象引用了,會(huì)導(dǎo)致此子對(duì)象不會(huì)被刪除,子對(duì)象不會(huì)被刪除又會(huì)導(dǎo)致了父對(duì)象不會(huì)被刪除;
3. 如果一個(gè)對(duì)象中引用了外部對(duì)象,當(dāng)自己被刪除或者不需要使用此引用對(duì)象時(shí),一定要記得把此對(duì)象的引用設(shè)置為 null;
4. 本對(duì)象刪除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子刪不掉導(dǎo)致父親也刪不掉;
5. 除了引用需要?jiǎng)h除外,系統(tǒng)組件或者全局工具、管理類如果提供了卸載方法的就一定要調(diào)用刪除內(nèi)部對(duì)象,否則有可能會(huì)造成內(nèi)存泄露和性能損失;
6. 父對(duì)象立刻被刪除了不代表子對(duì)象就會(huì)被刪除或立刻被刪除,可能會(huì)在后期被系統(tǒng)自動(dòng)刪除或第二次移除操作時(shí)被刪除;
7. 如果父對(duì)象 remove 了子對(duì)象后沒有清除對(duì)子對(duì)象的引用,子對(duì)象一樣是不能被刪除的,父對(duì)象也不能被刪除;
8. 注冊(cè)的事件 如果沒有被移除不影響自定義的強(qiáng)行回收機(jī)制,但有可能會(huì)影響正常的回收機(jī)制,所以最好是做到注冊(cè)的事件監(jiān)聽器都要記得移除干凈。
9. 父對(duì)象被刪除了不代表其余子對(duì)象都刪除了,找到一種狀態(tài)的泄露代碼不等于其他狀態(tài)就沒有泄露了,要各模塊各狀態(tài)逐個(gè)進(jìn)行測(cè)試分析,直到測(cè)試任何狀態(tài)下都能刪除整個(gè)對(duì)象為止。
內(nèi)存泄露舉例 :
1. 引用泄露:對(duì)子對(duì)象的引用,外部對(duì)本對(duì)象或子對(duì)象的引用都需要置 null ;
2. 系統(tǒng)類泄露:使用了系統(tǒng)類而忘記做刪除操作了,如 BindingUtils.bindSetter() , ChangeWatcher.watch() 函數(shù) 時(shí)候完畢后需要調(diào)用 ChangeWatcher.unwatch() 函數(shù)來清除引用 ,否則使用此函數(shù)的對(duì)象將不會(huì)被刪除;
類似的還有 MUSIC , VIDEO , IMAGE , TIMER , EVENT , BINDING 等。
3. 效果 泄露:當(dāng)對(duì)組件應(yīng)用效果 Effect 的時(shí)候,當(dāng)本對(duì)象本刪除時(shí)需要把本對(duì)象和子對(duì)象上的 Effect 動(dòng)畫 停止掉,然后把 Effect 的 target 對(duì)象置 null; 如果不停止掉動(dòng)畫直接把 Effect 置 null 將不能正常移除對(duì)象。
4. SWF 泄露:要完全刪除一個(gè) SWF 要調(diào)用它的 unload() 方法并且把對(duì)象置 null;
5. 圖片泄露:當(dāng) Image 對(duì)象使用完畢后要把 source 置 null;( 為測(cè)試 ) ;
6. 聲音、視頻 泄露 : 當(dāng)不需要一個(gè)音樂或視頻是需要停止音樂,刪除對(duì)象,引用置 null;
內(nèi)存泄露解決方法:
1. 在組件的 REMOVED_FROM_STAGE 事件回掉中做垃圾處理操作(移除所有對(duì)外引用(不管是 VO 還是組件的都需要?jiǎng)h除),刪除監(jiān)聽器,調(diào)用系統(tǒng)類的清除方法)
先 remove 再置 null, 確保被 remove 或者 removeAll 后的對(duì)象在外部的引用全部釋放干凈 ;
2. 利用 Flex 的性能優(yōu)化工具 Profile 來對(duì)項(xiàng)目進(jìn)程進(jìn)行監(jiān)控,可知道歷史創(chuàng)建過哪些對(duì)象,目前有哪些對(duì)象沒有被刪除,創(chuàng)建的數(shù)量,占用的內(nèi)存比例和用量,創(chuàng)建過程等信息 ;
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲精品字幕在线| 亚洲在线视频观看| 色婷婷亚洲婷婷| 狠狠躁日日躁夜夜躁av| 亚洲超丰满肉感bbw| 亚洲性生活视频| 91麻豆精品国产综合久久久| 欧美孕妇孕交| 欧美熟妇精品黑人巨大一二三区| 99精品欧美一区二区| 91久久国产综合久久蜜月精品| 欧美日韩在线免费视频| 成人毛片视频网站| 男女激情片在线观看| 日批视频网站| 99久久激情| 美女把尿口扒开让男人桶在线观看| 欧美被狂躁喷白浆精品| 日韩av电影在线网| 日韩人妻一区二区三区蜜桃视频| 成年人黄视频在线观看| 日韩综合av| 色偷偷偷在线视频播放| bt天堂新版中文在线地址| 极品尤物一区二区三区| 999在线观看精品免费不卡网站| 欧美精彩视频一区二区三区| 国产免费拔擦拔擦8x在线播放| 成人性生交大片免费看小说| 精品国产一区二区三区av性色| 国产乱淫av一区二区三区| 国产女主播喷水高潮网红在线| 亚洲人成绝费网站色www| 黄色网页在线| 中文字幕在线观看视频免费| 中文字幕超清在线免费观看| 久久香蕉综合色一综合色88| 免费精品国产的网站免费观看| 国产精品视频26uuu| 国产黄色在线网站| 蜜桃视频在线观看免费视频网站www| 亚洲精品乱码久久久久久蜜桃欧美| 麻豆视频在线观看免费网站黄| 亚洲综合图色| 国产免费色视频| 精品成人一区二区三区免费视频| 91日韩中文字幕| 在线观看欧美成人| 亚洲欧美视频一区| 秋霞影视一区二区三区| 日韩视频在线免费看| 久久久久免费网| 超碰96在线| 欧美精品久久天天躁| 日韩网红少妇无码视频香港| 麻豆传媒在线视频| 欧美精品成人在线| 黑巨茎大战欧洲金发美女| 不卡一本毛片| 国产精品人成电影在线观看| 日韩在线观看视频一区| 日韩av免费在线观看| 青青草久久伊人| 亚洲精品一区二区三区樱花| 亚洲一区亚洲二区亚洲三区| 日本成人片在线| 中文在线不卡| 欧美美女在线观看| 男女啪啪网站| 亚洲制服少妇| 老太脱裤让老头玩ⅹxxxx| 亚洲美女视频一区| 性欧美在线看片a免费观看| 羞羞的视频在线看| 亚洲区精品久久一区二区三区| 人妻av无码一区二区三区| 欧美成年黄网站色视频| 丰满的少妇愉情hd高清果冻传媒| 亚洲国产天堂久久综合网| 欧美日韩一区二区三区四区不卡| 99久久免费国| 成人午夜视屏| 亚洲免费av片| 天使萌一区二区三区免费观看| 成人日批视频| 亚洲 欧美 变态 另类 综合| 欧美日韩亚洲国产另类| 国产喷白浆一区二区三区| 无码aⅴ精品一区二区三区| 91久久久久久久久久久久久久| 蜜臀av一区二区在线观看| 精品99一区二区三区| 欧美理论一区二区| 中文字幕一区二区久久人妻网站| 91成人精品一区二区| 久久久久久欧美精品色一二三四| 欧美性受xxxx黑人猛交88| 亚洲精品成人在线| 色成人免费网站| 九一免费看片| 欧美三级中文字幕在线观看| 国产精品欧美综合| 中文字幕在线看片| 亚洲黄色成人网| 久久精品一区二区三区不卡免费视频| 国产成人三级| 神马影院午夜我不卡影院| 深夜福利一区| 四虎影视精品| 操人真爽免费视频| 国产a级黄色片| 又粗又大的机巴好爽欧美| 成人福利在线观看| 亚洲第一色在线| 亚洲午夜精品福利| 91www成人久久| 亚洲精品中文字幕有码专区| 91婷婷韩国欧美一区二区| 精品久久电影| 成人动漫av| 亚洲综合色在线观看| 日韩伦理一区二区三区| 亚洲国产精品久久网午夜小说| 国产韩日影视精品| 性欧美69式xxxxx| 永久免费精品影视网站| 麻豆传媒视频在线观看免费| 午夜精品三级视频福利| av亚洲产国偷v产偷v自拍| 精品精品国产高清一毛片一天堂| 久久精品a一级国产免视看成人| 色视频在线观看福利| 成人高潮成人免费观看| 日韩成人网免费视频| 国产女主播自拍| 国产综合色香蕉精品| 成人手机在线电影| 国产乱码精品一区二区三区日韩精品| 欧美aaaxxxx做受视频| a毛片在线看免费观看| 亚洲最大福利视频网站| av蜜臀在线| 成人国产精品入口免费视频| 四虎精品一区二区免费| 国产iv一区二区三区| 色婷婷综合久色| 无码国产精品久久一区免费| 天堂精品久久久久| 国产精品主播直播| 麻豆国产入口在线观看免费| 97成人精品视频在线观看| 999久久久久久| 999在线免费观看视频| 99久久这里只有精品| 亚洲精品不卡| 亚洲精品黄网在线观看| 亚洲一区二区在线免费看| 亚洲国产一区二区三区在线播放| 欧美日韩亚洲丝袜制服| 人妻 日韩精品 中文字幕| 国产精品美女久久久久高潮| 波多野结衣久久久久| 成人性爱视频在线观看| 手机在线观看av| 人与牲动交xxxxbbbb高清| 奇米网人体黄视频| 亚洲欧美激情网| 久久精品道一区二区三区| www精品久久| 国产精品视频久久久| 爱情岛论坛亚洲品质自拍视频网站| 欧美人动与zoxxxx乱| 亚洲精品第二页| 搡老熟女老女人一区二区| 99热com| 午夜精品久久久久久久99| 日日摸夜夜爽人人添| 91精品蜜臀在线一区尤物| 免费网站观看电影入口| 99国内精品| 日韩av网站在线| 欧美日韩在线网站| 亚洲涩涩在线观看| 久久久久久久久一区二区| 亚洲第一偷拍网| 中文区中文字幕免费看| 亚洲成人免费看| 九九99久久| 亚洲国内高清视频| 亚洲欧洲日本一区二区三区| 日本二区在线观看| 国产999精品久久| 国产精品18p| 欧美成ee人免费视频| 日本天堂中文字幕| 亚洲欧美日韩电影| 手机看片一区二区三区| 国产一区二区三区四区大秀| 国产精品678| 日本乱子伦xxxx| 影音先锋男人在线资源| 成人在线爆射| 久久久久久久久国产精品| 久久夜色精品国产| 亚洲精品成人自拍| 午夜伦欧美伦电影理论片| 成人黄网18免费观看的网站| www久久久久| 中文在线网在线中文| 在线能看的黄色| 日本精品久久久久久久| 久久大逼视频| 日韩高清影视在线观看| 黄色成人av网| 情趣网站视频在线观看| 欧美少妇另类| 国内a∨免费播放| 亚洲一区二区三区四区在线观看| 丁香婷婷综合五月| 色哟哟免费在线观看| 中文字幕在线看视频国产欧美在线看完整| 麻豆精品不卡国产免费看| 久久er精品视频| 97人人澡人人爽人人模亚洲| 黑人巨大精品欧美一区二区三区| 日韩大片在线播放| 欧美亚视频在线中文字幕免费| 天堂а√在线中文在线鲁大师| 欧美日韩国产一二| 欧美黑人激情| 亚洲国产成人va在线观看麻豆| 欧美视频一区二区三区在线观看| 成年人在线免费观看视频网站| 欧美尤物美女在线| 青娱乐国产盛宴| 麻豆成人在线视频| 欧美老妇交乱视频| 欧美午夜18电影| 欧美三级华人主播| 超碰在线cao| 一级特黄色大片| 中文字幕福利视频| 青草久久伊人| 久久一日本道色综合| 精品在线观看免费| 久热精品在线观看| 91超碰碰碰碰久久久久久综合| 中文字幕校园春色| 粉嫩一区二区| 中国极品少妇videossexhd| 99在线观看视频网站| 国产精品爽爽爽| 男女猛烈无遮挡| 一区二区三区毛片| 国产清纯美女被跳蛋高潮一区二区久久w| 真实新婚偷拍xxxxx| 国产美女无遮挡网站| 激情久久一区二区| 国产高潮流白浆喷水视频| 91精品在线免费视频| 日韩一区二区免费视频| 国产99久久九九精品无码免费| 全部av―极品视觉盛宴亚洲| 97超碰蝌蚪网人人做人人爽| 老司机在线看片网av| 亚洲每日在线| 久久久综合免费视频| 精品一区二区三区日韩| 亚洲一区在线免费| 欧美娇小性xxxx| 免费h视频在线观看| 韩国三级日本三级少妇99| 国产欧美一二三区| 精品欧美日韩精品| 国产一区二区观看| 视频一区欧美| 99精品欧美一区二区| 亚洲一区二区日本| 久草在线国产| 777视频在线观看| 久久亚洲AV成人无码国产野外| 欧美a级在线观看| 最新在线中文字幕| 91视频网入口| 久久久女人电视剧免费播放下载| 日韩电影免费在线观看网站| 日韩av女优在线观看| 日韩视频亚洲视频| 北条麻妃久久精品| 少妇荡乳情欲办公室456视频| 麻豆视频在线播放| 亚洲综合图片| 久久国产毛片| 中文字幕成人一区| 国产精品1区在线| 91.com在线观看| 秋霞在线观看一区二区三区| 影音先锋中文字幕在线视频| 精品人伦一区二区三区| 精品国产1区| 免费电影日韩网站| 思思久久99热只有频精品66| 亚洲 中文字幕 日韩 无码| wwwxxx国产| 日本高清久久久| 国产欧美日韩精品综合| 91香蕉视频污| 精品噜噜噜噜久久久久久久久试看| 国产成人免费xxxxxxxx| 欧美成人一区在线| 午夜无码国产理论在线| 成年人午夜视频| 国产又粗又大又爽的视频| 国产a免费视频| 免费看a级黄色片| 9999精品视频| 色噜噜狠狠狠综合欧洲色8| 91高清视频在线| 一二三区免费视频| 亚洲精品911| 久久久一二三| 国产一二三在线观看| 免费久久网站| www.午夜色大片| 成人高清免费| 一区二区三区四区乱视频| 精品91久久久久| 日日摸夜夜爽人人添av|