2011-07-28 8 views
0

ダイナミックローディングとレイトバインドの類似点と相違点は何ですか?ウィキペディアから

動的ロードが中に含まれる関数や変数のアドレスを取得し、コンピュータプログラムは、実行時に、メモリ内にライブラリー(またはその他のバイナリ)を読み込むことができる機構でありますこれらの関数を実行したり、それらの変数にアクセスしたり、ライブラリをメモリからアンロードしたりすることができます。

レイトバインディングは、実行時にオブジェクトに対して呼び出されているメソッドを名前で参照するコンピュータプログラミングメカニズムです。私の意見で


類似性は、彼らはメソッドが実行時に見上げられた両方のメカニズムですです。

動的ロードは、実行時にライブラリをロードした後にリンカを使用する必要はありませんが、遅延バインディングでは常にリンカが必要です。

私は正しいかどうかは分かりませんが、特に違いの部分です。あなたの分析からもっと学びたいと思います。

+0

ダイナミックにロードされたメソッドに後でバインドする場合を想像してください:-) –

+0

loooooooooooool – root

答えて

1

レイトバインディングは、オーバーコミットのように、正確さと遅れた破局的な失敗の可能性を犠牲にして、いくつかの特別な利点(パフォーマンス/メモリ許容量)を絞り込むためのハックです。

レイトバインディングを使用しない場合、モジュールの動的ロードは、再配置に必要なすべてのシンボルをロード時に解決できる場合にのみ成功し、解決できない場合に回復できる意味のあるエラーが発生します。レイトバインドでは、動的ロードは実質的に常に「成功」​​し、ダイナミックロードされたモジュールが解決できないシンボルを参照しようとしたときにプログラムがクラッシュする可能性があります。

0

私が理解しているように、動的ローディングはレイトバインディングよりも低いレベルです。したがって、後でバインドされた関数呼び出しは、通常の関数呼び出しと同じように見えますが、ライブラリが見つからない場合は、アプリケーションの起動時ではなく呼び出しを試みたときにアプリケーションが終了し、動的な読み込みではより多くのコードフォールバックメソッドを呼び出すなどのエラー処理が行われます。

関連する問題