2013-05-04 15 views
6

G ++ 4.6を使用して、メモリリソースが制限されたLinuxシステムでC++ライブラリを構築しようとしています。ライブラリはBoostを大きく使います。ブーストビルドでメモリ使用量を減らす

コンパイルのスピードに関するさまざまなスレッドが他のウェブサイトでも見られましたが、G ++にメモリリソースをあまり要求しないようにするヒントやテクニックに興味があります。

EDIT:ビルドのスピードだけが向上するBoost用のプリコンパイル済みヘッダーを使用しようとしましたが、おおよそ同じ量のメモリが必要です。

+1

組み込みプラットフォームでビルドしようとしているようです。これは一般的には良い考えではありません。代わりに、同じ方法で制約されていないプラットフォームからのクロスコンパイルを使用して、プログラムをビルドした後にプラットフォームに転送します。 –

+0

このライブラリの実装を変更しなければ、特に 'boost'を使う方法はありません。コンパイル時のメモリ使用量が多いと、通常、多くのテンプレートのインスタンス化が行われます。 –

+0

@JoachimPileborgいいえ、私たちはちょうど非常に控えめなサーバーにアップグレードするためのリソースがありません。 – cyberguijarro

答えて

5

ガベージコレクタの設定で再生する必要があります。パラメータはggc-min-expandggc-min-heapsizeです。ヒープサイズ(RLIMIT_AS)を減らすために、ulimitをulimit 65536(または何でも)に設定します。 gcc manual here

良い設定でその情報の

多くは8192に0とGGC-MIN-ヒープサイズのparamにGGC-MIN-拡大のparamを設定し、それをしようとするかもしれ...

CXXFLAGS = "$(CXXFLAGS)--param ggc-min-expand = 0 --param ggc-min-heapsize = 8192"またはそのような値です。

関連する問題