C ++は(まだ)モジュール式ではないため、コンパイルのボトルネックは多くの場合、問題が含まれていることが原因です。それは、必要のないときにあまりにも多くのファイルを含めることを使用しています。これらのインクルードが現時点で必要である可能性もありますが、いくつかの単純なリエンジニアリングで不要になる可能性があります。
ツールは自給自足で文書化されているので、レビュープロセスについて少し詳しく説明します。
- 2つ以上のヘッダーがある場合は、
#include
非常に疑わしいものです。
- 逆に、さまざまなタイプと関数がぎっしり詰まったソースファイルがあり、インクルードが2つしかない場合は、ヘッダーの1つが多すぎることを意味している可能性があります。
何が必要か、何が必要でないか、余分なヘッダーを削除する方法がわからない場合は、Pimpls-信頼できるビューティーマークを読むことをお勧めします。Pimplが何であるかわからない場合は、CompilationFirewallsをお読みください。ただし、Pimplには実行時間とメンテナンスのコストがかかるため、本当に必要な場合にのみ使用してください。個人的には、サードパーティに提供するライブラリのパブリックヘッダー(ABI互換性)で絶対にお勧めします。それ以外の場合は避けてください。
手動検査が得意でない場合は、ヘッダーごとにプリプロセッサ出力を生成し(ソースファイルについてはあまり気にしないでください)、より大きな出力を確認できます。