速度向上を行うための基本
ネタ元:
http://bbs.wankuma.com/index.cgi?mode=al2&namber=19771
速度向上を行うための基本は「己知彼知」です。
まず、現在どのようなコードを書いていて、それぞれのコードでどれくらいの実行時間が掛かっているかを調べるのが第一歩です(己知)。
今あるコードよりも良さそうなコードを探す(彼知)のは、時間が掛かっている個所が特定できたあとに時間が掛かっている部分から順番に探していく訳です。
特にハードが絡んでいるのならば、ハードウェア的な限界以上の性能はでない訳ですから、更に実行時間を測定してソフトウェア的にどうにかなるものなのかハードウェアの変更を考えなくてはいけないのか、もしくは要件の見直しやシステム全体の構成変更なのかを、早い時点で切り分けるのは開発プロジェクト全体の手戻りをするので非常に重要な事です。
もちろん、コードがダメダメで全部直さなくちゃだめだって事もあるかもですが、そうだとしても、現在の実行時間をきちんと『定量的に』計測しておかないと、ダメダメ度が計れません。それに、ダメダメだといってもハード的な問題で早いコードでも誤差の範囲でしか早くならないかも知れません。
なお、プロジェクトの進捗やヒューマンリソースを管理する立場の視点からすれば、そんな誤差の範囲の速度向上に時間を使って欲しくないし、ましてやそのために可読性やメンテナンス性が下がったとしたら目も当てられないというのが本音です。つまり、管理側からすれば、『己知』の報告を受ける事が重要であり、その情報を元にどの「彼」から『彼知』していくのかという判断を行える事が重要であると思うのです。