如何将 byte[] 转换为 bytebuffer 本机内存?

发布于 2024-11-26 17:54:13 字数 219 浏览 1 评论 0原文

我需要将大量内存传递给 jni 端来解析它。 我之前使用GetByteArrayElements来获取本机指针。但是我发现这个方法总是复制内存,而不是直接使用内存。 所以我使用 GetDirectBufferAddress 直接获取内存以避免内存复制。 这就要求必须使用allocateDirect方法来分配内存。 但给我的内存是字节数组,而不是本机内存。 有没有办法将 byte[] 转换为 bytebuffer? 谢谢。

I need pass a large amount memory to jni side to parse it.
I used GetByteArrayElements to get the native pointer before.but i found this method is always copy the memory,not using the memory directly.
So i use GetDirectBufferAddress to get memory directly to avoid mem copy.
This require that one must use allocateDirect method to allocate memory.
But the memory gived to me is byte array, not native memory.
Is there some way to convert byte[] to bytebuffer?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄荷梦 2024-12-03 17:54:13

不幸的是,您必须使用 put 并将字节数组复制到使用 allocateDirect 分配的缓冲区中。

Unfortunately, you will have to use put and copy your byte array to the buffer allocated with allocateDirect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文