2011-07-28 4 views
4

私はそれを解析するために大量のメモリをjni側に渡す必要があります。 私はGetByteArrayElementsを使って先にネイティブポインタを取得しました。しかし、このメソッドはメモリを直接コピーせず、メモリを直接使用しませんでした。 私はmemコピーを避けるためにメモリを直接取得するためにGetDirectBufferAddressを使用します。 これには、allocateDirectメソッドを使用してメモリを割り当てる必要があります。 しかし、私に与えられたメモリは、バイト配列であり、ネイティブメモリではありません。 byte []をbytebufferに変換する方法はありますか?おかげさまで byte []をbytebufferのネイティブメモリに変換するには?

+0

VM(プリミティブアレイ)内からVM外の場所(ネイティブOSのメモリ空間)にデータを移動しています - 残念なことに、その "血液脳"バリア上のデータ遷移としてコピー操作が必要です。 –

答えて

4

残念ながら、putを使用し、allocateDirectで割り当てられたバッファにバイト配列をコピーする必要があります。

+0

それは本当に残念なことに。メモリコピーは、Java側またはjni側で、避けることはできません。 – PDF1001

関連する問題