第10章 共有ライブラリ
動的共有オブジェクト (DSO) は、一般的に 共有ライブラリー と呼ばれ、個別のプロセスアドレス空間間でコードを共有するために使用されます。DSO は、
ld.so
システムローダーによって 1 度読み込まれます。そこから、ライブラリーからのシンボルを必要とするプロセスのアドレス空間にマッピングされます。記号の最初の参照が検出されるまでは、評価できません。シンボルが参照されている場合にのみ、シンボルの評価はレイテンシーのソースになります。これは、メモリーページがディスク上で可能で、キャッシュを無効にすることができるためです。シンボルを事前に評価することは、レイテンシーを改善するのに役立つ安全なサイド手順です。
プログラム起動時にシンボルを解決すると、プログラムの初期化が遅くなる可能性があります。ただし、シンボルの検索によって引き起こされる可能性のあるプログラムの実行中に、決定論的でない遅延が発生しないようにします。アプリケーションの起動時のシンボル解決は、
LD_BIND_NOW
環境変数を使用して実行できます。null 以外の値を設定 LD_BIND_NOW
すると、プログラムの読み込み時にシステムローダーが解決していないシンボルをすべて検索します。
注記
詳細は、以下の man ページは本セクションに記載の情報に関連しています。
- ld.so(8)