我需要帮助来做决定。我需要在我的应用程序中传输一些数据,并且必须在这 3 种技术之间做出选择。我已经阅读了所有技术(教程,文档),但仍然无法决定......
他们如何比较?
我需要支持元数据(能够接收文件并在没有任何附加信息/文件的情况下读取它)、快速读/写操作、存储动态数据的能力将是一个加分项(如 Python 对象)
我已经知道的事情:
- NumPy非常快,但不能存储动态数据(如 Python 对象)。(元数据呢?)
- HDF5非常快,支持自定义属性,易于使用,但不能存储 Python 对象。HDF5 也原生序列化 NumPy 数据,因此,恕我直言,NumPy 与 HDF5 相比没有优势
- Google Protocol Buffers也支持自我描述,速度非常快(但目前对 Python 的支持很差,速度慢而且有问题)。可以存储动态数据。缺点 - 自我描述在 Python 中不起作用,并且 >= 1 MB 的消息序列化/反序列化速度不是很快(阅读“慢”)。
PS:我需要传输的数据是 NumPy/SciPy 的“工作结果”(数组、复杂结构的数组等)
UPD:需要跨语言访问(C/C++/Python)