java memcopy DirectBuffer - PullRequest
       10

java memcopy DirectBuffer

1 голос
/ 31 мая 2011

Привет, я работаю с прямыми буферами в Java, и мне нужно быстро их записать.В C есть команда memcpy, а в Java Arrays у меня есть Arrays.copyOf.Но нет способа использовать массивы вместо прямых буферов, потому что мне нужно перенести их в OpenGL.

Ответы [ 3 ]

3 голосов
/ 31 мая 2011

Если вы имеете в виду «прямые» ByteBuffers, есть метод put , который принимает другие ByteBuffer экземпляры, чтобы вы могли копировать их.

3 голосов
/ 31 мая 2011

Вы можете просто использовать put() либо с байтом [], либо с байтовым буфером, это будет использовать собственный вызов memcpy ни в одном из Sun / Oracle JDK.

Для байтовых буферов прямого действия и кучи put() использует методы Bits.copyFromArray() и Unsafe.copyMemory().

1 голос
/ 31 мая 2011

check System.arrayCopy это самый быстрый способ скопировать часть массива в java

...