Boost Program Optionsを使用していますが、非常に小さなC ++コードをコンパイルするのにかなりの時間がかかります(10秒以上)。Boostライブラリなしでコードをコンパイルするのに1秒かかりました。
Boostライブラリを使用してコンパイル/リンク時間を増やす方法はありますか?クロスプラットフォームなので、Mac OS X / Linux/PCでコードをコンパイルする必要があります。
Boost Program Optionsを使用していますが、非常に小さなC ++コードをコンパイルするのにかなりの時間がかかります(10秒以上)。Boostライブラリなしでコードをコンパイルするのに1秒かかりました。
Boostライブラリを使用してコンパイル/リンク時間を増やす方法はありますか?クロスプラットフォームなので、Mac OS X / Linux/PCでコードをコンパイルする必要があります。
通常のトリック以外にできることはあまりありません。
boost/thread.hpp
がありますが、などの特定のヘッダーを持つサブディレクトリもありますboost/thread/shared_mutex.hpp
)、.cpp
ファイルにのみ含めてください。ヘッダーに含める場合は、そのヘッダーを含む翻訳ユニットがコンパイルされるたびにコンパイルする必要があります。一般的な経験則として、ヘッダーに含まれるコードの量を最小限に抑えるようにしてください。最後になりましたが、最後のオプションは、これらの特定のBoostライブラリを使用しないことです。
都合の悪いときに、特定のBoostライブラリを早い段階で使用することがあります。コンパイル時間が悪くなった場合は、コンパイルにコストがかかるライブラリと、比較的単純なコードに置き換えることができるライブラリを調べ始めます。多くの場合、Boostは非常に一般的であるという要件によって妨げられます。8年前のコンパイラで動作するものが必要ない場合、または非常に多くの異なるタイプで動作する必要がない場合は、動作する簡単な置換を作成でき、ほとんど時間がかかりません。コンパイルする。
コンパイル時間を短縮するために、コンパイラファイアウォールイディオムで成功しました。