【问题标题】:Storing big int array partially in database , to reduce memory in java将大int数组部分存储在数据库中,以减少java中的内存
【发布时间】:2010-09-24 17:27:48
【问题描述】:

我有一个包含 int[] 成员的类。数组变得非常大,大小约为 56M。(数组可扩展,实现类似于 arraylist)。现在我想将数组部分存储在数据库中,以提高内存。我有 oracle 数据库供我使用。我还想缓存更多使用的索引。我想知道是否存在用于此目的的 api。否则请提出实施方法。

【问题讨论】:

    标签: java database arrays memory int


    【解决方案1】:

    为什么不序列化数组对象。 每个数组大小为 2m ,该类被序列化并存储在一个文件中。最后反序列化这些类并合并数组。

    【讨论】:

    • 你能在我的场景中解释一下吗?
    【解决方案2】:

    我会看BerkeleyDB 而不是关系数据库。这将负责写入磁盘和缓存。

    不确定将ints 直接存储为值还是条带更有意义——我先从第一个开始,然后在使条带复杂化之前看看性能如何。

    【讨论】:

      【解决方案3】:

      56M 不是很大,除非您正在为移动设备进行开发。 1 Gb 在服务器/工作站中的成本约为 100 美元,因此 56MB 的价值约为 6 美元。如果您有很多 GB,则可能值得这样做。

      如果您想要一个可扩展的 int[],我建议您查看 TIntArrayList,它是一个使用 int[] 的类似 ArrayList 的集合。

      顺便说一句:RDBMS 数据使用的内存将远远超过您打算保存的内存,并且可能会慢 10 倍或更慢,具体取决于您对数组的操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 2023-04-01
        • 2011-12-12
        • 2011-08-06
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多