質問
Doxygenは少し遅いです-私のプロジェクト全体を処理するのに数分かかります。そのため、小さなインクリメンタルな変更では、実際に残りのコードをビルドするよりも長くなります。ドキュメントなしのファイルは数千あるので、ほとんどの時間を処理に費やしていると思います。ドキュメントなしでファイルをスキップする方法はありますか?
変更されたファイルのみを処理するようにするにはどうしますか?
解決
Doxygenドキュメントから:
すべてのテストディレクトリを除外する方法 ディレクトリツリーからですか?
次のような除外パターンを単純に置く これは構成ファイルで:
EXCLUDE_PATTERNS = / test /
そのため、パターンを使用してファイルを除外する必要があります。 Doxygenを使用してから長い時間が経ちましたが、変更されたファイルのみを処理するオプションを覚えていません。
他のヒント
オプション SEARCH_INCLUDES
をオフにすると、大きな違いが生じることがわかりました。プラットフォームSDK全体を調べ、ドキュメント化されておらず、生成されたドキュメントには表示されないコンパイラーのパスを含めました。
マルチコアマシンのパフォーマンスを向上させる可能性のあるDOT_NUM_THREADSオプションがあります。残念ながら、doxygen自体はシングルスレッドです。
別のアプローチは、コードをモジュールに分けて、モジュールごとに個別のdoxygenインスタンスを実行し、結果のタグをリンクすることです: http://www.doxygen.nl/manual/external.html
Doxygenは、変更されているかどうかに関係なく、ファイル間の接続を見つけるのに適しています。ただし、Doxygenは未変更のファイルに関する情報を記憶しないため、毎回コードベース全体を処理する必要があります。
解決策は、変更されていないファイルが、Doxygenスコープから除外され、ドキュメントがすでに利用可能な1つのモジュールに属するようにプロジェクトを編成することです。次に、新しく構築されたドキュメントをこの既存のモジュールドキュメントにリンクするようにDoxygenに指示することができます。
さらに進むと、モジュールごとにDoxygenを実行し、変更されたモジュールとすべてのモジュールドキュメントにリンクするトップレベルのドキュメントのみを処理することもできます。
通常の開発サイクルでDoxygenを実行するのは良い考えだとは思いません。 Doxygenビルドは、継続的インテグレーションサーバーの責任の一部として実行されます。
それは言ったが、ビルドごとにdoxygenを実行して不足しているドキュメントをキャッチすることにはいくつかの利点がある。 したがって、図を削除する開発ビルドのdoxygen構成をトリミングし、アップルがそれをxcodeにインポートすることを停止します。