単一のデータ構造のインスタンスの比較的大きな配列をいくつか扱っています。各インスタンスは、約半ダースのフィールドで構成されています。配列は多くのスペースを占有し、7 ギガバイトのヒープ スペースを使用する VM で実行している場合でも、開発環境が停止することがわかりました。より大きなマシンに移行することはできますが、パフォーマンスに大きな影響を与えずにスペースを節約する方法も模索しています. データを調べたところ、データにかなりの冗長性があることに気付きました。データの約 80% では、6 つのフィールドのうち 4 つの値が同じです。
これにより、冗長な情報を持つこれらのインスタンスを分離し、同じ情報を含む 4 つのフィールドの静的フィールドを持つ特殊な形式のデータ構造 (元のデータ構造の拡張) に配置できるという考えが浮かびました。私の仮定では、静的フィールドはメモリ内で 1 回だけインスタンス化されるため、この情報はたとえば 100K オブジェクトによって共有されますが、これらのフィールドは、1 つのデータ構造のみがインスタンス化された場合と同じメモリを占有します。したがって、大幅なメモリ節約を実現できるはずです。
これは正しい仮定ですか?
ありがとうございました、
エリオット