我正在处理单个数据结构的一些相对较大的实例数组。每个实例由大约六个字段组成。数组占用了大量空间,我发现即使在使用 7 GB 堆空间的 vm 运行时,我的开发环境也会死机。虽然我可以搬到更大的机器上,但我也在探索如何在不影响性能的情况下节省空间。在检查数据时,我注意到数据中有大量冗余。对于大约 80% 的数据,六个字段中有四个具有相同的值。
这给了我一个想法,我可以分离这些具有冗余信息的实例,并将它们放在数据结构的特殊形式(原始数据结构的扩展)中,其中四个字段包含相同信息的静态字段。我的假设是静态字段只会在内存中实例化一次,因此即使这些信息由 100K 对象共享,这些字段也会占用与仅实例化一个数据结构时相同的内存。因此,我应该能够实现显着的内存节省。
这是一个正确的假设吗?
谢谢,
艾略特