配列が早いか、XMLが早いか

ActionScript // 2009年03月15日 - 09:19

なんかそろそろActionScriptっていうカテゴリがあってもいいような気がしてきた。

2,500件の商品名が書かれたシンプルなXMLから
・配列に格納して出力
・XMLを生成して出力
両方の速度差を検証してみた。
今回はネットブックを使用したため、デスクトップPCと比べるとかなり遅い結果になるはず。

配列に格納して出力した結果

XML取得完了: 146(ミリ秒)
配列作成(push)完了: 172(ミリ秒)
appendTextループ開始: 172(ミリ秒)
appendTextループ完了: 9511(ミリ秒)

XMLを生成して出力した結果

XML取得完了: 139(ミリ秒)
XMLツリー作成(appendChild)完了: 8118(ミリ秒)
appendTextループ開始: 8118(ミリ秒)
appendTextループ完了: 17492(ミリ秒)

appendText開始~完了までは配列、XMLそれぞれ9.339秒、9.374秒なのでそれほど差はなかった。大きく違うのは配列にpushする時間とXMLツリーを生成する時間の差。今回の検証ではなんと7.946秒もの差が出た。この差はかなりでかい。

結果としては値を取り出す速度は互角だが、XML#appendChild()よりもArray#push()の方が50倍近く速いということがわかった。当然、データを取得するリソースとしてすでにXMLを取得している場合はXML#appendChild()を使うこともないんだけど。

コメント

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)