Google协议缓冲区,HDF5,NumPy比较(传输数据)

2024-09-28 21:30:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助来做决定。我需要在应用程序中传输一些数据,并且必须在这三种技术之间做出选择。 我读过一些关于所有技术的资料(教程,文档),但仍然不能决定。。。

他们如何比较?

我需要元数据(无需任何附加信息/文件即可接收和读取文件的能力)、快速读/写操作、存储动态数据的能力(如Python对象)的支持

我已经知道的事情:

  • NumPy速度很快,但无法存储动态数据(如Python对象)。(元数据呢?)
  • HDF5速度很快,支持自定义属性,易于使用,但不能存储Python对象。 而且HDF5以本机方式序列化NumPy数据,因此,IMHO,NumPy与HDF5相比没有任何优势
  • Google Protocol Buffers也支持自描述,速度相当快(但目前Python支持很差,速度慢而且有缺陷)。可以存储动态数据。缺点-自描述在Python中不起作用,>;=1 MB的消息序列化/反序列化的速度不是很快(读“慢”)。

PS:我需要传输的数据是NumPy/SciPy的“工作结果”(数组、复杂结构的数组等)

UPD:需要跨语言访问(C/C++ + Python)


Tags: 文件数据对象numpy应用程序序列化教程能力