我们的主程序是java,但是从存储中提取数据的代码是用C语言编写的.我需要从提取的数据中构建一个HDF5文件.使用JNI调用C代码获取数据然后从Java构建HDF5文件还是从C代码构建HDF5会更好吗?
我对JNI或C的经验不多.
我们的主要标准之一是表现.使用JNI时有多少性能影响?
函数调用边界是"慢"的,所以如果你对本机例程做了很多调用,那么性能就会受到影响.
移动到JNI 可能会受益的一个例子(我强调可能,因为Java对于许多目的而言足够快)将是在大型位图上进行某种图像处理的例程.但是为每个像素调用JNI例程比在纯Java中的循环中调用它要快得多.
坦率地说,将数据从一种格式提取到另一种格式是最好用Python这样的"脚本"语言完成的,并且永远不会被CPU束缚.相反,磁盘速度将比任何语言解释器慢.