首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure时间序列分析

Clojure时间序列分析
EN

Stack Overflow用户
提问于 2012-09-10 22:39:56
回答 2查看 944关注 0票数 4

我有一个大的数据集(200 9GB未压缩,9GB在bz2 -9压缩)股票滴答数据。

我想对它们进行一些基本的时间序列分析。

我的机器有16 My内存。

我宁愿:

  • 将所有压缩的数据保存在内存中
  • 动态解压缩这些数据,并将其流到磁盘上,这样就不会有任何数据进入磁盘。
  • 在记忆中做所有的分析

现在,我认为这里有很好的交互,可以使用Clojure的懒惰和未来的对象(也就是说,我可以定义对象s.t )。当我试图访问它们时,我会即时解压它们。)

问:在Clojure中进行高性能时间序列分析时,我应该记住什么?

我特别感兴趣的技巧包括:

  • 在内存中有效地存储刻度数据
  • 高效计算
  • 减少对数据的传递的奇怪卷积

欢迎书籍/文章/研究论文的建议。(我是个CS PhD学生)。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-10 23:18:45

一些想法:

  • 在存储压缩数据方面,我认为您不会比操作系统自己的文件系统缓存做得更好。只需确保它被配置为使用内存的11GB+进行文件系统缓存,并且它应该在第一次读取时将整个压缩数据集拉到内存中。
  • 然后,您应该能够定义您的Clojure代码,以便通过ZipInputStream懒洋洋地进入数据,这将为您执行解压缩。
  • 如果您需要对数据执行第二次传递,只需在同一个文件上创建一个新的ZipInputStream。操作系统级缓存应该确保您不会再次访问磁盘。
票数 3
EN

Stack Overflow用户

发布于 2012-09-11 02:22:32

我听说过类似用Java实现的系统。这是可能的。您当然希望了解如何创建自己的惰性序列来完成这一任务。如果您需要确保处理的是要处理的原始类型,我也会毫不犹豫地进入Java。例如,Clojure不会在32位ints上生成用于计算的代码,它只会生成用于longs的代码,如果您不想这样做,这可能会很痛苦。

让内存中的格式与磁盘格式兼容也是值得的。这将为您提供内存映射文件的选项,或者(至少)在程序崩溃时使您的启动变得容易。例如,它可以读取磁盘上的文件来恢复以前的状态。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12360437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档