java - 收集、存储和检索大量数值数据

标签 java c++ python storage simulation

我即将开始实时收集大量数字数据(对于那些感兴趣的人来说,各种股票和 future 的买价/卖价/最后或“磁带”)。稍后将检索数据以进行分析和模拟。这一点也不难,但我想高效地完成它,这带来了很多问题。我不需要最好的解决方案(无论如何,根据指标可能有很多“最佳”)。我只想要一个计算机科学家会认可的解决方案。 (或者不笑?)

(1) 优化磁盘空间、I/O 速度或内存?

对于模拟来说,整体速度很重要。我们希望数据的 I/O(实际上是 I)速度比计算引擎快,因此我们不受 I/O 限制。

(2) 存储文本或其他内容(二进制数字)?

(3) 给定 (1)-(2) 中的一组选择,是否有任何出色的语言/库组合可以完成这项工作 - Java、Python、C++ 或其他语言?

我会将这段代码归类为“写完就忘记”,因此在代码的清晰度/紧凑性上更注重效率。我非常非常愿意坚持使用 Python 来编写模拟代码(因为模拟确实改变了很多并且需要清晰)。因此,优秀的 Pythonic 解决方案会加分。

编辑:这适用于 Linux 系统 (Ubuntu)

谢谢

最佳答案

  1. 优化磁盘空间和 IO 速度是同一件事 - 如今,CPU 与 IO 相比速度如此之快,以至于在存储数据之前压缩数据通常总体上更快(您可能确实想这样做)。我确实不认为内存发挥了重要作用(尽管您可能应该使用合理大小的缓冲区来确保进行顺序写入)。

  2. 二进制更紧凑(因此更快)。考虑到数据量,我怀疑人类可读是否有任何值(value)。文本格式的唯一优点是,如果它被损坏或丢失解析代码,更容易找出并纠正。

关于java - 收集、存储和检索大量数值数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098509/

相关文章:

java - spring:mvcUrl 映射错误的 id

java - 在java中将小长整型转换为大长整型

java - 如何按正确顺序将 LinkedHashMap 值转换为 ArrayList/Array?

c++ - 如何专门化另一个模板类的模板成员函数?

python - 通过在 PyCharm 2016.3.2 中运行的 Python 3.6 脚本打开 UTF-8 编码的文件

python - Pandas 与 matplotlib 日期时间

Java线程安全类,参数每小时刷新一次

c++ - 显示正确的整数结果

c++ - C/C++ 中的 C 字符串定义

python - 具有多个条件的 Numpy "where"