プログラムの高速化については本連載の第13回で紹介しています。プログラム中のどの部分を高速化すべきなのか,どのように効果を測定するのか,そもそも高速化が必要なのかを考察しました。今回は実際に高速化を試みます。 今回はプログラム高速化の実践編として,ある程度の大きさの具体的なプログラムを段階的に高速化しながら,実践的なテクニックを学ぶことにしましょう。 例題はマンデルブロ集合*1の計算プログラムです(図1)。マンデルブロ集合は非常に美しい集合ですから,本当はグラフィックス表示が好ましいでしょう*2。しかし,GUIを使うと,特定のGUIライブラリ(グラフィックス・ルーチン)に依存したコードが大量に必要です。今回のテーマは「高速化」ですから,直接関係のないGUIコードはできるだけ省くため,キャラクタ(英文字)で図形を表現することにしました。 1 require 'complex' 2 3 def