Java中的HDF5:可用API之间有什么区别? [英] HDF5 in Java: What are the difference between the availabe APIs?

查看:217
本文介绍了Java中的HDF5:可用API之间有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've just discovered the HDF5 format and I'm considering using it to store 3D data spread over a cluster of Java application servers. I have found out that there are several implementations available for Java, and would like to know the differences between them:

  • Java HD5 Interface (JHI5) The Java wrapper from the HDF group itself.

JHDF5(HDF5 for Java)

永久冻土

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

Nujan: Pure Java NetCDF4 and HDF5 writer (cannot read HDF5)

最重要的是,我想知道:

Most importantly, I would like to know:


  • 涵盖了多少本机API,没有任何限制原生API中是否存在

  • How much of the native API is covered, any limitations that do not exist in the native API?

如果支持Parallel HDF5?

If there is support for "Parallel HDF5"?

ONC加载我的3D数据,每次访问3D数组中的一个元素时,是否会获得本地调用开销
?也就是说,数据
实际上变成了Java对象,还是保留在native / JNI
内存中?

Once my 3D data is loaded, do I get a "native call overhead" each time I access one element in a 3D array? That is, do the data actually gets turned into Java objects, or stay in "native/JNI memory"?

是有任何特定的
实现的稳定性问题,因为本机代码崩溃通常会使整个
JVM失效?

Is there any know stability problems with a particular implementation, since a crash in native code normally takes the whole JVM down?

推荐答案

HDF Java遵循分层方法:

HDF Java follows a layered approach:


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

  • JHI5 - the low level JNI wrappers: very flexible, but also quite tedious to use.

Java HDF对象包 - 一个高基于JHI5的级别接口。

Java HDF object package - a high-level interface based on JHI5.

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

HDFView - a Java-based viewer application based on the Java HDF object package.

JHDF5在JHI5层上提供了一个高级接口,它提供了HDF5到Java的大部分功能。 API具有浅薄的学习曲线,并隐藏了开发人员的大部分内务工作。您可以在作为JHDF5一部分的JHI5接口上运行Java HDF对象包(和HDFView),因此这两个API可以在一个Java程序中共存。

JHDF5 provides a high-level interface building on the JHI5 layer which provides most of the functionality of HDF5 to Java. The API has a shallow learning curve and hides most of the house-keeping work from the developer. You can run the Java HDF object package (and HDFView) on the JHI5 interface that is part of JHDF5, so the two APIs can co-exist within one Java program.

Permafrost和Nujan在这一点上似乎还远未完成,而且Permafrost最近没有看到很多活动,因此它们似乎不是目前的首选。

Permafrost and Nujan seem far from being complete at this point and Permafrost hasn't seen a lot of activity recently, so they appear to be not the first choice at this point in time.

我认为一个好的途径是查看Java HDF5对象包和JHDF5,确定哪两个API更适合您的需求并与之相配。

I think a good path for you is to have a look at both the Java HDF5 object package and JHDF5, decide which one of the two APIs fit your needs better and go with that one.

免责声明:我曾经使用过JHDF5接口,所以我可能有偏见。

Disclaimer: I have worked on the JHDF5 interface, so I may be biased.

这篇关于Java中的HDF5:可用API之间有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆