COBOL2002 ユーザーズガイド
19.5 静的なリンクと動的なリンク
- 静的なリンクとは
- 静的なリンクとは,オブジェクトファイルのリンク時にプログラムの呼び出しを解決して,実行可能ファイルを生成するリンク方法です。
- 静的なリンクとは,次の両方のことを指します。
- オブジェクトファイルを静的に結合して,一つの実行可能ファイルを生成すること
- DLLのインポートライブラリを使用して,呼び出し先プログラム名の名前解決を静的にすること
- 静的なリンクの長所と短所
- 静的にリンクすると,主プログラムがメモリにロードされるのと同時に,呼び出し先プログラムもロードされます。そのため,プロセス起動時にはロード時間が掛かりますが,CALL文でほかのプログラムを呼び出すとき,すでにメモリ上にプログラムがロードされているので,高速に呼び出せます。
- 静的にリンクした方がよいケース
- 同じプログラムを何度も呼び出すようなプログラム構造の場合は,静的にリンクした方がプログラムの実行性能が良くなります。
- 動的なリンクとは
- 動的なリンクとは,呼び出し先プログラムの情報を保持しない実行可能ファイルを生成するリンク方法です。
- 動的なリンクでは,CALL文での呼び出し先プログラム(副プログラム)と呼び出し元プログラム(主プログラム)とを別ファイルで生成しておきます。呼び出し先プログラムは,呼び出し元プログラムがCALL文を実行したとき,メモリにロードされます。
- 動的なリンクの長所と短所
- 動的にリンクすると,主プログラムがメモリにロードされても,副プログラムはロードされないため,プロセス起動時のロード時間が静的リンクより高速になります。また,プログラムが消費するメモリ空間が少なくて済みます。しかし,CALL文の実行時に,呼び出し先プログラムのロードと検索処理が実行されるため,CALL文の処理時間は遅くなります。
- 動的にリンクした方がよいケース
- 処理の流れによって呼ばれないことがある副プログラムがある場合は,動的にリンクした方がプログラムの実行性能が良くなります。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.