【问题标题】:Fast Load Matrices [Numpy/Java]快速加载矩阵 [Numpy/Java]
【发布时间】:2017-08-29 02:55:53
【问题描述】:

Python 尝试:

我有矩阵 ~(50000 * 100),还有一些 50*100、(50000*2)。 我使用 numpy_compressed 保存了它们,它在大约 300 毫秒内加载了矩阵。将此保存为 Json (list-of-list)[与保存到 str dump 和使用 eval 相同] 大约需要 700 毫秒。

我的主要目标是为需要快速响应的服务快速加载矩阵。一旦矩阵加载到内存中,实际的矩阵计算约为 2 毫秒。

如何快速加载 numpy 矩阵? 在 Java/Clojure 中是否更快?

【问题讨论】:

  • 请查看 HDF5。这是在数值应用程序中存储矩阵的一种非常标准的方法。 HDF5 针对高性能计算进行了优化。 AFAIK,如果需要,它还支持压缩。 Json 不是存储矩阵的糟糕选择,因为它没有针对速度和以文本形式存储信息进行优化(这通常需要更多的空间/时间)。

标签: python numpy matrix clojure


【解决方案1】:

您的问题是关于(反)序列化的速度。一般来说,字节/原始序列化器可能比 JSON 等文本序列化更快。实际性能将取决于您的具体情况,因此如果性能真的很关键,您应该使用不同的序列化程序对其进行测试。

话虽如此,Transit 是在以不同语言编写的应用程序之间传输数据的好选择。另一方面,可以在以下位置找到 Java 序列化程序的基准:https://github.com/eishay/jvm-serializers/wiki

【讨论】:

    猜你喜欢
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2017-08-18
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多