Java中的HDF5:可用API之间有什么区别?
我刚刚发现了HDF5格式,正在考虑使用它来存储分布在Java应用程序服务器群集上的3D数据。我发现有几种可用于Java的实现,并且想知道它们之间的区别:
Java HD5接口(JHI5) HDF组本身的Java包装器。
JHDF5(用于Java的HDF5)
多年冻土
Nujan:纯Java NetCDF4和HDF5编写器(无法读取HDF5)
最重要的是,我想知道:
涵盖了多少本机API,本机API中不存在任何限制?
是否支持“ 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