Java中的HDF5:可用API之间有什么区别?

我刚刚发现了HDF5格式,正在考虑使用它来存储分布在Java应用程序服务器群集上的3D数据。我发现有几种可用于Java的实现,并且想知道它们之间的区别:

  • Java HD5接口(JHI5) HDF组本身的Java包装器。

  • JHDF5(用于Java的HDF5)

  • 多年冻土

  • Nujan:纯Java NetCDF4和HDF5编写器(无法读取HDF5)

最重要的是,我想知道:

  • 涵盖了多少本机API,本机A​​PI中不存在任何限制?

  • 是否支持“ Parallel HDF5”?

  • 加载3D数据后,每次访问3D数组中的一个元素时,我都得到“本地调用开销”吗?也就是说,数据实际上变成了Java对象,还是留在了“本地/ JNI内存”中?

  • 由于本机代码崩溃通常会使整个JVM崩溃,因此特定实现是否存在已知的 稳定性 问题?

回答:

HDF Java遵循分层方法:

  • JHI5-低级JNI包装器:非常灵活,但使用起来也很繁琐。

  • Java HDF对象包-基于JHI5的高级接口。

  • HDFView-基于Java HDF对象包的基于Java的查看器应用程序。

JHDF5在JHI5层上提供了一个高级接口,该接口提供了HDF5到Java的大部分功能。该API的学习曲线较浅,并向开发人员隐藏了大部分整理工作。您可以在JHDF5的JHI5接口上运行Java

HDF对象包(和HDFView),因此这两个API可以在一个Java程序中共存。

到目前为止,Permafrost和Nujan似乎还远远不够完善,并且Permafrost最近还没有看到很多活动,因此,它们似乎并不是此时的首选。

我认为对您来说,一条不错的途径是同时查看Java HDF5对象包和JHDF5,确定两种API中的哪一种更好地满足您的需求,然后再使用它。

免责声明:我已经在JHDF5接口上工作,所以我可能会有所偏见。

以上是 Java中的HDF5:可用API之间有什么区别? 的全部内容, 来源链接: utcz.com/qa/398765.html

回到顶部