私は実際に何をしているのかと期待できるはるかに大きなコードを生成するC++ライブラリを持っています。 50K以下のソースからは、ほぼ4MBの共有オブジェクトと9個の静的アーカイブが得られます。これは、ライブラリバイナリがかなり大きく、さらに悪いことに、単純なアプリケーションでも500〜1000 KBのコードサイズ。 -Oのようなフラグを使ってライブラリをコンパイルすると、これはいくらか助けになりますが、実際はそれほど役に立ちません。C/C++アプリケーションで過剰なコードサイズをプロファイリングするためのテクニックやツールは何ですか?
私はGCCの-frepoコマンドを使って実験しました(Linux collect2が重複したテンプレートをマージすることを示唆しているすべてのドキュメントでも)と、 "重複する可能性が高い"どちらの場合でも実際の効果はありません。もちろん、私は「可能性が高い」と言っています。何らかのプロファイリングのように、このような盲目の推測はほとんど常に間違っているからです。
コードサイズのプロファイリングを容易にするツールがありますか、それで何がすごく多くの部屋を占めているのか、もっと一般的には、私が試してみるべきことが分かりますか? Linux上で動作するものは理想的ですが、私が得ることができるものを取り上げます。
「-W1」ではない、「-Wl」 –
@FX - ありがとうございます。私はそれを修正しました。 –