4

私の質問を説明する最良の方法は、2 つの例を見てください。

例 1:

MyLibrary と呼ばれる何らかのフレームワークまたはエンジンを作成し、最大限の最適化オプションを備えた.libとしてビルドしました。次に、ヘッダーを含めて、 MyImplementation と呼ばれる新しいプロジェクトに.libをリンクします。このプロジェクトでは、ほとんどのMyLibrary の機能と、完了したら、プロジェクトをビルドします (ここでも最大限の最適化を行います)。

例 2:

再び同じライブラリがありますが、それをビルドする代わりに、オープンソースのままにします。次に、同じ MyProject を作成し、ヘッダーを含め、最大限の最適化を有効にして MyProject をビルドします。

では、コンパイラはソース コード全体 (フレームワーク/エンジン + それを使用するプロジェクト) にアクセスできるため、例 2はより高速に実行されますか?

4

1 に答える 1

2

静的ライブラリは事前にコンパイルされています。つまり、それ以上の最適化はリンカーに依存します。最近では、リンカーから大きなパフォーマンスの向上が得られますが、一般的に最良の結果は、プロファイルをブートストラップするための特別なコンパイラ設定を必要とする、プロファイルに基づく最適化から得られます。プロジェクトをオープン ソース化することは常に推奨されます (知的財産を保護する場合を除きます)。これは、開発者がプラットフォームとコンパイラ用にプロジェクトをコンパイルできるためです。また、ソース コードなしではデバッグが事実上不可能であることは言うまでもありません。

于 2012-11-03T23:37:30.310 に答える