2017-11-29 17 views
2

私のプロジェクトのコンパイル速度は、多くのマクロを使用した単体テスト(多分、ブーストテストライブラリを使用している)のために遅いです。 gcc -ftime-reportから、前処理時間のコストが高いことが示されます。このために速度を最適化する方法はありますか?gccでマクロの前処理を高速化する方法はありますか?

+0

プリコンパイル済みヘッダーがあります。 –

+2

マクロを頻繁に使用する場合は、プリプロセッサがより多くの処理を行うことを期待してください。あなたのコードやマクロに関する情報や、それらのマクロをどのように使用しているのか(マクロの拡張/置換はプリプロセッサの仕事であるため、マクロの使用量が多いとプリプロセッサが難しくなります)、有用な助言を与えることは不可能です。一般的な解決策は次のようなものです:マクロの使用は避けますが、反復コード(労働集約型、エラーが起こりやすい)を書くか、別のテクニック(テンプレートなど)を使用して前処理後に多くの作業をするなど、 – Peter

答えて

1

それは本当にあなたのマクロによって異なりますが、一般的な考え方は、あなたがキャッチを使用していた場合は、例えば、それらに

を拡大する回数を減らすことです、良いアイデアは、テストスイートの共通部分を置くことです別の共有ファイル(https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md#scaling-up)に保存します。

私はブーストテストライブラリを使用したことはありませんが、明らかに同様の提案(http://www.boost.org/doc/libs/1_42_0/libs/test/doc/html/utf/usage-recommendations/generic.html)を示しています。

関連する問題