多くの場合、構成を制御していないサーバーで実行される私のコードでは、ユーザーのコレクションがあり、各ユーザーにはbyte[]
配列があります。
場合によっては、これらのbyte[]
配列はユーザーに固有のものです。byte[]
ただし、多くの場合、まったく同じ配列を持つ多数のユーザーが存在します。
サーバーの RAM 消費を削減しようとしています。
配列を文字列に変換してインターンしようとしましbyte[]
たが、PERM-GEN のメモリ不足エラーが頻繁に発生します。byte[]
また、ユーザーのために配列にアクセスしたい場合、エンコーディング/デコーディングで大幅なパフォーマンスの低下が見られます。また、最悪の場合のメモリ使用量が大幅に増加していることがわかります。
Set<SoftReference<byte[]>>
Java 配列がハッシュ可能ではなく、SoftReferences がポイントのオブジェクトのハッシュをラップしない場合、どのようにルックアップを行うことができますか? キーはそれ自体であり、コレクションを妨げているため、 AMap<byte[],SoftReference<byte[]>>
も明らかにそれ自体を打ち負かしています。とにかくの観点からSet
内部的に実装されています。Map
では、どうすれば配列 をインターンできますか? byte[]