2011-02-06 8 views
2

C++/ObjCアプリケーションで正規表現を扱うためにboost :: xpressiveを使用しています。 Mac OS 10.6のアップデート以来、私たちはコンパイル時間が非常に長いことを発見しました。(デュアルクアッドMacProでは各ファイル(!)に対して1〜2分です...)式が定義され、sregex :: compile )。さらに、システム全体のパフォーマンスが低下し、無責任なアプリケーションが発生します。他のすべてのファイルのコンパイルは期待どおりに実行されます。Mac OS 10.6でboost :: xpressiveを使用するとコンパイルに時間がかかる

使用されるコンパイラは、10.5と10.6の両方でgcc4.2です。同様の経験や提案がありますか?これを防止する方法はありますか?

おかげで、((OK、それだけでなく、それの多く)すべてに約あるかブーストです)テンプレートテンプレートを使用
マティアス

+3

これは、理由のために「boost :: excess」と呼ばれています。 (SCNR) – sbi

+2

あなたはboost :: quickercompileを試しましたか? –

答えて

2

については、多くのコンパイラでは非常に遅いです。これにより、Boost.Spirit、Boost.Expressiveなどのコンパイル時間が悪くなります。既知の問題、ブーストメーリングリストに関する定期的な話題。

あなたは

  • をすることができますが、多分Boost.Regexでは、より良い回
  • は、あなたがこのようなものを使うようにコンパイルした
  • (いくつかのBoostライブラリは、このような事は、文書化していない)ヒントのためのドキュメントと希望を読みます.cppファイルのみ - ヘッダー内でそのようなものを使用すると、コンパイル時に "無関係"ファイルに苦しみます。
  • 別々の.cppファイルに別の.cppファイルを追加
  • 次のg ++​​ verテンプレートコードをうまく処理するためのシオン。
関連する問題