我尝试使用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