第9回 測定狂時代:まつもとゆきひろのハッカーズライフ(2/2 ページ)
ハッカーの多くは何らかのスピード狂的側面を持っているようです。しかし、最適化を始める前には、その作業が無駄になるかならないかを見極める必要があります。
無駄でない努力
ハッカーたるもの無駄な努力をするべきではありません。天より与えられたハッキングの才能を浪費することは許されないのです*。では、努力を無駄にしないためにはどうしたら良いでしょうか。
そのためには「パレートの法則」を理解しておく必要があります。パレートの法則とは「80:20則」とも呼ばれるもので、全体の8割の数値は全体を構成する2割の要素が生み出しているという法則です。19世紀後半のイタリアの経済学者ヴィルフレド・パレート(Vilfredo Federico Damaso Pareto)が発見したことから、このような名前がついています。
パレートの法則から分かるのは、要するに努力が報われる2割の領域と報われない8割の領域*があり、報われない領域で幾ら努力しても無駄にしかならないということです。だから最適化を始める前に、その作業が無駄になるかならないかを見極める必要があります。
プロファイラ
作業が無駄になるかどうか見極めるツールをプロファイラと呼びます。Linuxで最も有名なプロファイラはgprofでしょう。
gprofを使うには、コンパイル時にccのコマンドラインオプションとして「-pg」を追加します。このオプション付きでコンパイルされたプログラムには、関数の実行状態を測定するルーチンがリンクされます。プログラムを実行すると、カレントディレクトリにgmon.outファイルが生成されます。プロファイル結果を見るには、そのディレクトリで、
gprof <プログラム名>
を実行します。これによって、
- どの関数がどのくらいの時間を消費しているか?
- どの関数がどこから何回呼ばれているか?
などの情報を含む長いリストが出力されます。それを調べることで、「どの関数で最も時間がかかっているか」とか「どの関数が無駄に関数を呼び出しているか」などを確かめられます。この情報を参考にすることで、より効果的な最適化ができるでしょう。
実効速度を見るgprof以外にも、メモリ消費量を調べるメモリプロファイラなど、測定するプログラムはたくさんあります。
正しく測定して効果的な最適化を行うことは、ハッカーの測定狂的性質とスピード狂的性質の両方を一度に満足させることができます。一粒で二度おいしい最適化、あなたも試してみませんか?
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このページで出てきた専門用語
浪費することは許されないのです
念のため注釈をつけておくが、当然冗談である。だが、ハッカーが無駄な努力を嫌う傾向があるのは事実。
報われる2割の領域と報われない8割の領域
パレートの法則における80:20の関係は経験則であり、実際にはもっと極端な場合もしばしばある。少なくともプログラミングに関しては90:10とか99:1とかは決して珍しくない。
本記事は、オープンソースマガジン2005年12月号「まつもとゆきひろのハッカーズライフ」を再構成したものです。
関連記事
- まつもとゆきひろのハッカーズライフ:第1回 ハッカーとの遭遇
- まつもとゆきひろのハッカーズライフ:第2回 キーボードへのこだわり
- まつもとゆきひろのハッカーズライフ:第3回 ハッカーと仕事
- まつもとゆきひろのハッカーズライフ:第4回 Emacs対vi
- まつもとゆきひろのハッカーズライフ:第5回 ハッカー環境問題
- まつもとゆきひろのハッカーズライフ:第6回 言語の重要性
- まつもとゆきひろのハッカーズライフ:第7回 言語の重要性その2
- まつもとゆきひろのハッカーズライフ:第8回 ハッカーとオープンソース
- まつもとゆきひろ――第1回:オープンソースという「お仕事」
オープンソースソフトウェアの開発にかかわっている人のインタビューをシリーズでお届けする「Open Source People」。記念すべき第1回はMatzのニックネームでも知られるまつもとゆきひろ氏の「人となり」に迫る。 - まつもとゆきひろ――第2回:Rubyを開発するということ
周囲がまつもと氏のまれたぐいまれなプログラミング言語アーキテクトとしての才能に気づき、まつもとがそれに専念できるような体制が自然に形作られつつある――Rubyはいま、そういう状況にあるように見える。今回は、Rubyの開発におけるまつもと氏の考えに迫る。 - まつもとゆきひろ――第3回:僕の存在価値はそこにある
過去2回にわたってお届けしてきたまつもとゆきひろ氏へのインタビューは今回が最終回となる。「誰かがRubyを実装し直したとしたら、いまのRubyよりもずっとエレガントで速いものができるはず」と語るまつもと氏は自身の存在価値をどのように見ているのかに迫る。
Copyright © ITmedia, Inc. All Rights Reserved.