|
|
1
6
考虑到您的用例,JNI不会比JNA快。 Java本地交互的昂贵之处在于传输大量内存。特别是,使Java内存对本机代码可用是非常昂贵的;IIRC,这部分是因为Java可以选择对它所喜欢的内存进行分段,但是本机代码会期望连续的内存块——内存的移动/复制需要一些时间。 如果您关心性能,那么应该确保您的JNA代码使用“直接”样式访问,而不是原始的接口样式访问。 此外,如果确实需要在Java和本机代码之间传输大量内存,则应该考虑使用单个初始直接分配(如果可能的话),并且避免定期重新分配内存。通过这种方式,您只需支付一次分配成本,并且在开始时,因此在大量调用中,成本变得可以忽略不计。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 8 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 8 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 8 月前 |
|
|
rudraraj · java中未声明最终变量 9 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 9 月前 |