我刚刚发现了HDF5格式,我正在考虑使用它来存储分布在Java应用服务器集群上的3D数据.我发现有几种可用于Java的实现,并想知道它们之间的差异:
Java HD5接口(JHI5)来自HDF组本身的Java包装器.
Nujan:纯Java NetCDF4和HDF5编写器(无法读取HDF5)
最重要的是,我想知道:
涵盖了多少本机API,本机API中不存在的任何限制?
如果支持"Parallel HDF5"?
加载3D数据后,每次访问3D阵列中的一个元素时,是否会获得"本机调用开销"?也就是说,数据实际上是变成了Java对象,还是留在"native/JNI memory"中?
是否知道特定实现的稳定性问题,因为本机代码崩溃通常会导致整个JVM崩溃?
小智 23
HDF Java采用分层方法:
JHI5 - 低级JNI包装器:非常灵活,但使用起来也相当繁琐.
Java HDF对象包 - 基于JHI5的高级接口.
HDFView - 基于Java HDF对象包的基于Java的查看器应用程序.
JHDF5在JHI5层上提供了一个高级接口,它提供了HDF5到Java的大部分功能.API具有浅薄的学习曲线,并隐藏了开发人员的大部分内务工作.您可以在作为JHDF5一部分的JHI5接口上运行Java HDF对象包(和HDFView),因此这两个API可以在一个Java程序中共存.
永久冻土和努扬在这一点上似乎远未完成,永久冻土最近没有看到很多活动,因此它们似乎不是此时的首选.
我认为一个好的途径是看看Java HDF5对象包和JHDF5,确定哪两个API更适合您的需求并与之相配.
免责声明:我已经研究过JHDF5接口,所以我可能会有偏见.
| 归档时间: |
|
| 查看次数: |
7922 次 |
| 最近记录: |