« December 2007 | Main | February 2010 »

February 10, 2008

Re: 私の peephole 最適化

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

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

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

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

| | Comments (0) | TrackBack (0)

February 09, 2008

近況報告

昨年末にCCGrid出しましたと書いておいてその後音沙汰がないのもアレなので。

1月中旬に結果が返ってきて、CCGrid'08には無事通りました。現在Camera-ready原稿の準備中。投稿時にこれでよいと思っていたフォーマットと別のフォーマットを使わないといけないらしいことが判明し、大幅ページ数超過の予感。どうしたものか・・

1月はずっと修論のターン。今週発表会&審査会も終了して、なんとか修士の修了+博士への進学を認めてもらえたようです。審査の結果を聞く前から飲んでいたりしたが・・・

周囲はほとんどが修士修了後就職して大学を離れていくということもあり、自分自身の生き方についてもあれこれ考える時間が長くなっているような気がする今日この頃ですが、目の前のやるべきことも疎かにしないように着実にこなしていきたいところです。

| | Comments (0) | TrackBack (0)

« December 2007 | Main | February 2010 »