Tag: concurrency

JNI与JNA表现

我们有一个原生的c/asm应用程序利用GPU(OpenCL)通过特定的方法获得大的encrypt/decrypt数据,它只是工作完美,没问题。 项目的一部分(Web和分发)由JEE开发,我们只需要调用本机应用程序/库。 我们尝试使用Process类将其称为分离外部进程。 问题是我们无法控制应用程序(事件,处理程序,线程等)。 我们还尝试将C代码切换为Java代码,但性能已经消失。 除了将本机代码作为进程运行之外,我正在考虑JNA和JNI,但是有一些问题。 问题: 为了更好(更快)的读/写解决方案,是否可以通过JNI和JNA中的直接(非托管)内存[Java( ByteBuffer#allocateDirect() )]交换数据? 是否可以通过本机代码管理和处理进程,并通过Java代码(OpenCL lib)访问GPU(共享)内存? 性能怎么样? JNA比JNI快吗? 我们在Redhat Linux6 x64上有两个AMD W7000集群设备。