2002-06-22

昨日のバージョンはバグっていたことが判明したので修正。いくら仕事が速くてもちゃんと並び替えられてないのでは意味がありません。

修正した結果を測定しなおすと、残念ながらそれほど速くなってないみたいです。関数呼び出しのオーバーヘッドとかを気にするよりは、わかりやすく書いたほうがいいというのが今回の教訓ですかね……。

xhtml.txc
304 KB/9845行
xhtml.txc
(ソート済み)
html40.txt
773 KB/18914行
ログファイル
555 KB/11545行
再帰呼び出し版 541 ms 86905 ms 1141 ms 13729 ms
スタック実装+α版 470 ms 86234 ms 1001 ms 13510 ms
txSort関数版(参考) 270 ms 260 ms 791 ms 371 ms

と、結果をまとめてみました。恐ろしいのはすでにソート済みのデータを再ソートしたときで、ソートしていないものと比べて180倍以上の時間がかかってます。対処法はあるみたいなので、やはりこれは直したほうがいいですかね……。

TX-C APIのtxSort関数を使ってやってみた結果も面白いです。ソート済みかどうかは処理時間にほとんど影響がないので(むしろ純粋に処理行数に依存)、やはりアルゴリズムが違うのでしょう。それにしてもやはりネイティブ処理は速い……。