AS3のソートって、実はかなり遅かったのね・・・
AS3で画像のピクセルデータをソートしたくなり、こんな感じでソートしてみると・・・
なんと、たったの16384ピクセル(128x128)をソートするのに2833msecもかかるという結果に・・・
色々調べてみると、やはりAPIにビルトインされているソートメソッドは遅いようで。独自にソートアルゴリズムを実装して高速化する方法もあるようだけど、今回の場合は2倍や4倍程度の高速化では話にならん。
やり方そのものを変えるほかなし。
var pixels:Vector.<uint> = bitmapData.getVector(bitmapData.rect); var time:int = getTimer(); pixels.sort(Array.DESCENDING | Array.NUMERIC); trace("analyzePixels() ソート完了 " + (getTimer() - time) + " msec pixels.length=" + pixels.length);
なんと、たったの16384ピクセル(128x128)をソートするのに2833msecもかかるという結果に・・・
色々調べてみると、やはりAPIにビルトインされているソートメソッドは遅いようで。独自にソートアルゴリズムを実装して高速化する方法もあるようだけど、今回の場合は2倍や4倍程度の高速化では話にならん。
やり方そのものを変えるほかなし。
コメント
コメントを投稿