« 近況報告 | Main | ここらでウィルコムへの愛を語っておくか »

February 10, 2008

Re: 私の peephole 最適化

xhlメモに触発されて久しぶりにプログラミング関連の記事。ほとんどの項目はxhlメモで網羅されてしまっているが、いくつか自分がやることを追加してみる。

ライブラリのソースを読む
特にSTLを使っている場合。STLの内部で実際どのようにコードが走るのかを知ることで糸口が見つかる場合がある。自分の例では、使っていたSTLが自分と思っていたのと違う動作をしていたという例があった。

メモリアロケーションに注意
STLのsetやmapを多用しているとヒープからのメモリの確保や解放が頻発する。アルゴリズムのコアな部分でこれが起きると、下手するとアロケータが何割かのCPU時間を使うこともあるので注意が必要。動的メモリアロケーションがアルゴリズムの本質上どうしても必要なら、自前のより軽量かつ目的に特化したアロケータを書いてみたり、汎用的なインターフェースを持ちながらも高速なアロケータに取り替えてみる(参考)等してみるといいかも。

本当は「プログラムを最適化する10の方法」とかいって10個並べると格好いいが、まあ思いつかないのでこんなところで。ちなみに話題のもととなった某氏のコードが純粋計算系のプログラムだったので今回は扱っていないが、I/Oやシステムコールを多用するプログラム(サーバアプリケーションとか)になるとまた違った視点からの最適化も必要であるとは思う。

|

« 近況報告 | Main | ここらでウィルコムへの愛を語っておくか »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/39126/40062569

Listed below are links to weblogs that reference Re: 私の peephole 最適化:

« 近況報告 | Main | ここらでウィルコムへの愛を語っておくか »