【问题标题】:In memory data structure内存数据结构
【发布时间】:2014-08-12 09:42:19
【问题描述】:

我有一个用例,我需要在几分之一秒内处理巨大的 Excel 文件,这是不可能的。因此,我希望将 excel 文件中的选定信息存储在内存中,以便我的应用程序可以从内存中读取它,而不是每次都加载 excel 文件。顺便说一句,我正在使用 groovy 来开发应用程序。我的问题如下:

  • 什么是内存数据结构?如何在 groovy 中使用?
  • 当运行在不同节点的多个进程想要访问内存中的数据结构时会发生什么?
  • 任何指针/链接都会非常有帮助

【问题讨论】:

    标签: groovy in-memory


    【解决方案1】:
    1. 只需使用apache poi,它就会将工作簿加载到内存中(example
    2. 他们将需要每个加载一个副本。或者你需要做一些聪明的事情
    3. 见上文

    【讨论】:

    • 感谢您的回复。我实际上正在这样做,这需要很多时间。例如,我跨越了大约 100 个进程,他们都需要查看这个 excel 文件中的特定行。这个过程需要很多时间,因此整体执行需要更多时间。相反,如果我可以将信息以哈希图结构的形式存储在内存中,我的进程可以简单地读取它而不是查看 excel 文件。所以,我对这样的解决方案很感兴趣。
    • Hazelcast? MongoDB? (其他数据库和集群对象存储可用)
    • 我使用了 Hazelcast。令人印象深刻。也在研究redis。然而,最终,我们从 excel 转移到了 csv,并且通过单次扫描 csv,所有需要的信息都存储在一个地图结构中,这只需要大约 1 分钟。后续对信息的访问是从map结构。这种方法提供了更好的性能。当然,这受到文件大小的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    相关资源
    最近更新 更多