【问题标题】:Caching large Arrays to SQLite - Java/ Android将大型数组缓存到 SQLite - Java/Android
【发布时间】:2010-11-14 20:34:24
【问题描述】:

我目前正在开发一个系统,用户最终将拥有大型数组(使用 android)。然而 JVM 内存有耗尽的风险,所以为了防止这种情况,我正在考虑创建一个临时数据库并将数据存储在那里。但是,让我担心的问题之一是 SD 卡受读写限制。另一个想到的问题是这种操作的开销。任何人都可以解决我的顾虑,并提出一个可能很好的替代方法来处理大型数组(最终这些数组将通过编写 csv 文件并上传到网站上)。

谢谢, 费萨尔

【问题讨论】:

    标签: java android arrays sqlite caching


    【解决方案1】:

    一些想法:

    1. 您可以使用 Derby 之类的 dbms 来存储它们,该数据库内置于许多 java 版本中
    2. 您可以将它们存储在写入字节的压缩输出流中 - 如果数据易于压缩,即定期重复数字、文本等,这将特别有效
    3. 您可以一次上传部分数组,即在生成它们时,开始以块的形式将数据片段上传到服务器

    【讨论】:

    • 好了前两个选项,用derby代替Sqlite有什么用?第二个选项,那不会还在用完sd卡的读写吗?还是我对 sdcard 读写的工作方式有误解?
    • 使用第三个选项,用户可能不会一直连接到互联网。
    • 使用第二个选项 - 您可以使用 bytearrayoutputstream 写入保留在内存中的字节数组(或类似的东西 - 今天早上我不知道确切的类名)
    • 如果您正在压缩它,则不会 - 将流包装在压缩流中,例如 GZip 流或类似的东西。
    猜你喜欢
    • 1970-01-01
    • 2011-12-09
    • 2021-07-11
    • 2022-06-14
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多