【发布时间】:2012-06-19 08:26:51
【问题描述】:
用 Java 填充预先分配的 ByteBuffer 的最快方法是什么?
我首先用allocateDirect() 设置字节缓冲区的大小,这只需要做一次。之后,我需要以byte[] 数组的形式尽可能快地连续填充它(回收它),大约每 5ms 一次,并且不占用内存,因为我已经预先分配了字节缓冲区。
目前,我使用put() 指令,在我的系统中完成该指令大约需要 100 毫秒。
是否有另一种方法来填充字节缓冲区? wrap() 函数在不重新分配数组的情况下运行得更快吗?
【问题讨论】:
-
你可以试试 System.arraycopy。检查:Is it better to use System.arraycopy(…) than a for loop for copying arrays?
标签: java arrays performance bytebuffer