Oracle® Solaris 11.2 リンカーとライブラリガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

圧縮のコストと利点

圧縮デバッグセクションの主な利点は、オブジェクトのサイズを削減できることです。ただし、圧縮により、開発のすべての段階で実行時およびメモリー使用におけるコストが増加します。

  • コンパイラは、非圧縮形式で各デバッグセクションを生成し、圧縮バージョン用に追加のメモリーを割り当て、圧縮を実行する必要があります。

  • 入力オブジェクトを読み取ると、リンカーは圧縮データをメモリーに読み込み、非圧縮データを保持するための追加のメモリーを割り当て、解凍を実行します。

  • 出力時には、リンカーは生成されるデバッグセクションの非圧縮バージョンを作成する必要があります。圧縮が必要な場合、圧縮バージョンの作成に追加のメモリーと時間が費やされます。

  • デバッガは、圧縮デバッグセクションを含むオブジェクトを読み取ると、解凍したデータを保持するために追加のメモリーを割り当てて、解凍を実行する必要があります。

さらに、圧縮デバッグセクションは小さなファイルは対応できますが、大量の情報には対応できません。一般的な例としては、含まれる 32 ビットファイルのオフセットおよびサイズを使用するために基本的に 4G バイトに制限されている、32 ビットオブジェクトがあります。デバッグデータを圧縮すると、より多くのデバッグ情報を生成できると想定される場合があります。ただし、32 ビットデバッグデータの形式には 32 ビットオフセットなども含まれ、非圧縮形式では 4G バイトに論理的に制約されます。

これらの理由から、一般的な開発では圧縮デバッグセクションはお勧めしません。このような開発では通常、コンパイル/リンク/デバッグのサイクル速度がデバッグデータを縮小する利点よりも重要になるからです。圧縮デバッグセクションは、ディスク領域が十分でない場合や、広範にコピーされめったにデバッグされない実稼働オブジェクトでは役立つことがあります。