我嘗試使用ActionScript 3自定義排序功能瓶頸
的問題進行梳理大陣的是,我必須使用自定義排序功能是痛苦的緩慢,導致Flash插件崩潰。
下面是使用其成員的長度進行排序數組的自定義功能的示例代碼:
private function sortByLength():int {
var x:int = arguments[0].length;
var y:int = arguments[1].length;
if (x > y){
return 1;
}else if (x < y){
return -1;
}else{
return 0;
}
}
被稱爲像這樣:
var txt:Array = ["abcde","ab","abc","a"];
txt.sort(sortByLength);
請告訴我怎麼能這樣做會更快嗎?
如何更改應用程序邏輯以避免排序過程中Flash插件崩潰?
看起來不錯,但我認爲這不應該更快。 – Eugeny89 2011-06-06 17:15:46
謝謝你的回覆,我當然接受它。但是有一個問題沒有答案 - 如何在Flash中執行貪婪的計算而不掛上它?例如,你的函數在具有200000+個成員的數組上失敗。如何更改應用程序邏輯以避免CPU密集型任務期間Flash插件崩潰(如排序大數組)? – Termos 2011-06-06 17:16:59
@ Eugeny89不要猜測,但嘗試;)它會更快的工作,因爲:你消除了參數[]的指針數組訪問,你消除了代價昂貴的分支。現在,如果您使用不太多的數據進行測試,您將看不到差異。 – Patrick 2011-06-06 17:33:43