在我的代码中,通常在我不控制配置的服务器上运行,我有用户集合,每个用户都有一个byte[]
数组。
有时这些byte[]
数组对用户来说是唯一的。但是,通常会有大量用户使用完全相同的byte[]
数组。
我正在尝试减少服务器的 RAM 消耗。
我尝试将我的byte[]
数组转换为字符串并将它们实习,但我经常遇到PERM-GEN 内存不足错误。当我想为用户访问数组时,我还看到编码/解码的性能显着下降byte[]
,并且我看到更坏情况下的内存使用量大大增加 - 可能字符串比数组大得多。
Set<SoftReference<byte[]>>
当 Java 数组不可散列并且 SoftReferences 不包装对象的散列点时,我如何进行查找。AMap<byte[],SoftReference<byte[]>>
显然也在打败自己,因为关键是它自己并且阻止了收集;并且无论如何Set
都是在内部实现的。Map
那么我怎样才能实习 byte[]
数组呢?