ソフトウェア開発201の鉄則: 原理199:進化:最適化する前にプロファイラを使え

要旨

* プログラムでは、8割のCPUパワーが2割のコードで使われているものだ
* なので、その2割を探し出すのが、ソフトウェア実行速度の高速化、最適化で重要
* そのためには、リソース消費を監視する「プロファイラ」を使おう
* 最もCPUを消費する「ホットスポット」見つけ出し、そこだけ最適化すれば良い

解説

「どこでCPUを使っているか」が分からなければ、そりゃ、高速化も最適化も、できませんわね。

2割8割、ここでも出てくる。パレートの法則。一般則だが、ソフトウェア実行で実行速度が問題になった時はもっと偏っていて、「95% のリソースが5%のコードで」くらいが体感的にあっている気が、する。

プロファイラがないシステムも、ある。その時は、「もどき」でいいから、作るかオープンソースを活用して組み込むところから、やるべし。

想定より実行速度が低く、これを改善したいとき、問題点をコード上で予測をするなら、まず「繰り返し」を疑おう。

for や while での必要以上の繰り返しとか、結果に偏りがあるのに全検索してるとか、無駄な初期化を繰り返しているとか。

ループ内を見直す。そしてプロファイラでリソース使用状況をみる。これが最適な方法だろう。


この記事が気に入ったらサポートをしてみませんか?