2012-02-10 13 views
23

Tôi vừa phát hiện ra định dạng HDF5 và đang xem xét sử dụng nó để lưu trữ dữ liệu 3D trải rộng trên một cụm máy chủ ứng dụng Java. Tôi đã phát hiện ra rằng có một số triển khai sẵn cho Java, và muốn biết sự khác nhau giữa chúng:HDF5 trong Java: Sự khác biệt giữa API availabe là gì?

Quan trọng nhất, tôi muốn biết:

  • Làm thế nào mu ch của API gốc được đề cập đến, bất kỳ giới hạn nào không tồn tại trong API gốc không phải là ?

  • Nếu có hỗ trợ cho "Parallel HDF5"?

  • Khi dữ liệu 3D của tôi được tải, tôi có nhận được "phí gọi điện gốc" mỗi khi tôi truy cập một phần tử trong một mảng 3D không? Nghĩa là, dữ liệu có thực sự được chuyển thành các đối tượng Java hay không hoặc ở trong bộ nhớ "native/JNI "?

  • Có biết ổn định vấn đề với một thực hiện cụ thể, kể từ khi một vụ tai nạn trong mã nguồn gốc thường mất toàn bộ JVM xuống?

Trả lời

19

HDF Java sau một cách tiếp cận lớp:

  • JHI5 - wrappers mức JNI thấp: rất linh hoạt, nhưng cũng khá tẻ nhạt để sử dụng.

  • Gói đối tượng HDF Java - giao diện cấp cao dựa trên JHI5.

  • HDFView - một ứng dụng xem dựa trên Java dựa trên gói đối tượng HDF Java.

JHDF5 cung cấp kiến ​​trúc giao diện cấp cao trên lớp JHI5 cung cấp hầu hết chức năng của HDF5 đến Java. API có đường cong học tập nông và ẩn hầu hết công việc lưu giữ nhà từ nhà phát triển. Bạn có thể chạy gói đối tượng HDF (và HDFView) trên giao diện JHI5 là một phần của JHDF5, do đó, hai API có thể cùng tồn tại trong một chương trình Java.

Permafrost và Nujan dường như không được hoàn thành vào thời điểm này và Permafrost đã không nhìn thấy nhiều hoạt động gần đây, vì vậy chúng dường như không phải là lựa chọn đầu tiên vào thời điểm này.

Tôi nghĩ rằng một con đường tốt cho bạn là xem cả gói đối tượng Java HDF5 và JHDF5, quyết định xem một trong hai API nào phù hợp với nhu cầu của bạn tốt hơn và đi cùng với nhu cầu đó.

Tuyên bố từ chối trách nhiệm: Tôi đã làm việc trên giao diện JHDF5, vì vậy tôi có thể bị thiên vị.

Các vấn đề liên quan