5

私は約 xxx ソース ファイル (Visual Studio 2010) を持つ大きなアプリケーションを管理しています。

かなりの年月をかけて、リリース ビルドを /Zi でコンパイルし、シンボル サーバーに格納されている PDB ファイルを取得しています。何年にもわたって、私たちのビルド スクリプトがますます遅くなり、実行可能ファイルのビルドに 2 時間以上かかることに気付きました。

Visual Studio C++ プロジェクトで /Zi と /Z7 を使用すると、どのような影響がありますか? /Z7 が古い形式であり、/Zi が優先されることを示しているようです。

それにもかかわらず、/Z7 を使用してビルド スクリプトを実行しようとしたところ、2 時間以上かかっていた時間が約 20 分に大幅に短縮されました。また、ソース ファイルごとに 1 つの PDB ファイルを使用して /Zi を使用する実験も行いました (リンカーは、1 つの大きな PDB ファイルにマージします)。これにより、コンパイルのパフォーマンスも向上しますが、リンク時のパフォーマンスはわずかに低下します。

ビルド時間を最適化するために、/Z7 に戻したいと思います (リンカーは最終的に PDB ファイルを生成します) が、これがアプリケーションの「デバッグ可能性」に影響を与えるかどうかはわかりません。

質問:

  • /Z7 でコンパイルした場合、リンカによって生成される PDB ファイルの内部デバッグ形式は、/Zi とは異なりますか (コンパイラによってデバッグ情報が格納される場所が異なるだけで、形式は同じである可能性があります)?
  • /Z7 は、/Zi と比較して、ある種のデバッグを防止しますか?
  • 一般的に、リリース ビルドに推奨されるデバッグ形式 (/Zi、/Z7) はどれですか?
4

0 に答える 0