2008-08-27

sas5の内訳

以前からやってみたかったmapファイルの解析をしてみた。

約3.4Mバイト中、約1/3は低レベルな画像処理でしめられている。これは様々なピクセルフォーマット、合成モード、変形モード等の膨大な量の組み合わせによる。うまくまとめれば、それほど速度を落とさずに小さくできるかもしれないけど、正直やる気がしない。

そして意外に大きいのがアプリケーションクラス周辺で372552バイト。これはよくよく調べてみると、テンプレートとマクロで必要な部品をコンパイル時にのり付けする仕組み(ある種の型リスト)が結構大きかった。というか、無駄にvirtualが付いているせいで、RTTIデータがひどいことになってる。virtualを消しただけで200k以上減った。後は細かい初期化に必要なコードがそこそこと、shared_ptrがらみの細々としたのが塵も積もればで意外と大きい。

sas5lib全体では791096バイト。まあ、これは色々入ってるので、大きくても仕方ないところ。

あとライブラリ単位で言うと、kuiが288428バイト、vorbis_staticが124864バイト、残りは数十k台。kuiは色々出来が悪いライブラリなので仕方ない(ぉ。不満があるなら作り直すしか無かろう。

コンパイルオプションをサイズ優先にするとだいぶ違うのではないかと思う。