だんごチェック自己記録測定会
とりあえず自分の作った、3種類のだんごチェック関数に関して処理時間を計測してみました。
真→真だんごチェック
2→だんごチェック2
1→だんごチェック
ユニット数(全て集合) | 真 | 2 | 1 |
---|---|---|---|
1 | 18.78 | 14.54 | 11.46 |
3 | 47.82 | 38.68 | 28.64 |
5 | 76.12 | 60.38 | 44.90 |
7 | 101.66 | 85.84 | 62.18 |
10 | 142.94 | 118.58 | 84.04 |
20 | 282.52 | 236.88 | 162.50 |
単位はミリセコンド
やはりというか、再帰関数でできている「1」の処理時間の短さは圧倒的でした。まあ、以前にも述べたように、SRCにおいては再帰関数も他の部分が欠点だらけですが。
関数というのは、呼び出されるたびに、メモリを必要な分だけ割り当て、終了したらその割り当てられたメモリを解放します。再帰関数は処理が終了しないうちに、更に自分を呼び出していくので、どんどんメモリを削っていくんですよね。なので、ユニット数が膨大な数になったりすると、PC自体が不都合を起こしてしまうでしょうね。まあ、SRCのシステムで最大呼び出し数が決められているので、実際にそんなことは起きませんが。
ちなみに、「真」と「2」に関しては、全く同等のアルゴリズムを使った上で、真には機能拡張を施したので、まあこんなもんでしょうか。
まあ、全部わかりきっていたことなんで、特に収穫があったわけではありません。が、強いていうとすれば、
どんなアルゴリズムも一長一短。
処理時間の短縮を求めるならば、然るべき使用場所を見極めるのが重要、といったところでしょうか。
まだまだコンピュータに関しては素人なので、これからも精進精進。