最終更新日 2007年06月27日
up
top
プログラムの最適化 その1
図のようなフォームがあったとする。
ステータスバーの表示・非表示を選択できるとして、
ステータスバーの表示・非表示に関わらずステータスバーに文字を表示させた方が速いだろうか。
それともステータスバーの状態をチェックし、文字を表示させたりさせなかったりした方が速いだろうか。
コードで書けば、
'// code 1
ToolStripStatusLabel1.Text = "0123456789abcdefghijklmnopqrstuvwxyz"
と
'// code 2
If StatusStrip1.Visible Then ToolStripStatusLabel1.Text = "0123456789abcdefghijklmnopqrstuvwxyz"
の違いである。5億回ループさせてみた。結果code 1の方が11秒でcode 2の方が49秒であり、
ステータスバーの状態をチェックした方が約5倍速かった。
念のため表示する文字列を「0123456789」と短くしてみたが48秒と誤差程度の違いであった。
さらに空欄でも試してみたが、こちらも48秒であった。
当たり前といえば当たり前の結果であるが、プログラムのコードを見たとき、
条件判断がない方がロジックが簡単であり、プログラミングが楽で、(個人的には)美しい。
しかし、ちゃんと条件判断をすると1/5000万秒ほど速くなる。
だからどうしたというわけだが、自分への戒めのために。
VB.NET 2005 Expressでの話だが、処理系では表示されないコントロールへの処理はしないものもあるかもしれない。
その場合はcode 2の方が遅くなるであろう。