JNI性能

 2023-01-21    312  

问题描述

我们的主要程序在Java中,但是从存储中提取数据的代码是用C编写的.我需要从提取的数据中构建HDF5文件.最好使用JNI调用C代码以获取数据,然后从Java构建HDF5文件或从C代码构建HDF5?

我几乎没有JNI或C.

JNI性能

我们的主要标准之一是性能.使用JNI时会有多少性能?

推荐答案

函数调用边界是”慢”,因此,如果您对本机例程进行了许多呼叫,那么性能就会受苦.

可能会受益于JNI的一种例子(我强调 May ,因为Java对于许多目的而言已经足够快了)例行程序可以在大的位图上进行某种图像处理.但是,要为每个像素调用JNI例程要比在纯Java中的循环中慢得多.

坦率地说,从一种格式提取数据是在像Python这样的”脚本”语言中完成的最好的事情,并且永远不会受到CPU的约束.相反,磁盘速度将会变得速度比任何语言解释器要慢.

其他推荐答案

在我看来,由于您对C的经验很少,因此最好的选择是通过使用Java来做到这一点.JNI真的还不错.

其他推荐答案

我对C One以外的HDF接口根本不熟悉,所以我无法真正为您进行比较.

我会指出,这是所有其他接口都使用的API,因此,如果您发现您需要发挥最大性能,那么C API将是最好的.

还有一个问题,关于您可以使用哪些API.例如,我最初从C ++接口开始.一些API仍然仅在C API中可用.当您使用C&C ++时,这不是问题,但是如果您不需要API,则可能是一个问题.

话虽如此,您确实需要根据C的对象模型来拧紧头.使用指针,手柄等.

以上所述是小编给大家介绍的JNI性能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26306.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。