clang(libclang) と特定の関数 clang_parseTranslationUnit および clang_reparseTranslationUnit を使用する場合の解析パフォーマンスについて質問があります。
プロセスを最適化しようとしていますが、すでにアイデアがありません。状況は次のとおりです-多くのヘッダーファイルを含む.cppソースがあります。このヘッダーはめったに変更されません。ただし、.cpp ソースは頻繁に変更されるため、頻繁に再解析する必要があります。そのため、すべてのヘッダーを「プリパース/プリコンパイル」して .pch ファイルを作成し、.cpp を解析するときにそれを使用する可能性があります。ただし、問題は、.pch を 1 つしか使用できないことです。したがって、含まれているすべてのヘッダーから .pch を作成する必要があります。ただし、後で他のヘッダー ファイルをインクルードするときに、ヘッダーがまったく変更されていなくても、すべてのヘッダーを再解析する必要があります。また、これは問題であり、.cpp にどのヘッダーが含まれているかを明示的に知る必要があります (これはあまり便利ではありません。これは、少なくとも自分でインクルードをスキャンしてから、.cpp を作成する必要があることを意味するためです)。
プロセスを最適化する他のオプションはありますか? 私は、clang_parseTranslationUnit と後で clang_reparseTranslationUnit を使用するときに、実際にこの方法で解析が最適化されることを望んでいました (少なくとも、変更されていないすべてのヘッダーを再度解析する必要はありません)。しかし、それはそのようには機能しません。