まず、ユーザ定義のヘッダと対応するcpp
ファイルを使用します。それから私は含めます。 DLLに切り替えると、コードの実行速度は遅くなりますか?DLLの実行速度への影響
第2に、「DLL」では「D」は「ダイナミック」を表していますが、私の友人はそれらを使用するには2つの方法があると言いました。それがすでに動的であれば、「静的」で何をする必要がありますか?
まず、ユーザ定義のヘッダと対応するcpp
ファイルを使用します。それから私は含めます。 DLLに切り替えると、コードの実行速度は遅くなりますか?DLLの実行速度への影響
第2に、「DLL」では「D」は「ダイナミック」を表していますが、私の友人はそれらを使用するには2つの方法があると言いました。それがすでに動的であれば、「静的」で何をする必要がありますか?
DLLを使用すると、DLLの読み込みによってアプリケーションの起動時間が長くなるのを除いて、DLLを使用してもパフォーマンスに大きな違いはありません(大文字と小文字が区別されます)。クリティカルなアプリケーションでは、DLL(インテルの数学ライブラリなど)を使用します。コンパイラがプログラム全体の最適化を行うことができない場合、マイナスの罰則がありますが、これは通常は重要ではない小さな違いです。
静的/動的について:私は、通常の方法(インポートライブラリを使用して)をDLLとリンクすることができると考えています。実行時に常にロードまたはロードされます(LoadLibrary
とdlopen
)パフォーマンスの違いはありませんが、LoadLibrary
を使用すると、実際に必要になるまでライブラリの読み込みを遅延させることができます。
生産性は、一般的にローカル関数呼び出しと同様にdllから関数を呼び出す限り、回帰してはいけません。 LIBSの
つのタイプが存在する:ビューの
exe
へのリンクされますことを静的手段、逆にダイナミック libには、実行可能ファイルからに別々のコードにできますライブラリを共有し、そのコードを動的にをロードされます。
また、一部のツールチェーンは自動遅延遅延ロードを提供します。 Microsoftの['/DELAYLOAD'](http://msdn.microsoft.com/en-us/library/yx9zd12s.aspx)スイッチ –
ウェブサイト(http://logix4u.net/vc/19-a-tutorial- on-creating-dlls-vc)私はDLLが従来の方法よりも遅いことを読んでいます。それはわずかな文章です。あなたもそれについてコメントできますか? – Shibli
DLLを呼び出すには、最大で関数ポインタを使用して関数を呼び出すコストがあります。これは、軽度でない関数のゼロオーバーヘッドの次にあります(非常に小さな関数は、インラインで作成することもできます)。これは、仮想関数呼び出しと同等のコストです。 – Anteru