問題タブ [bytebuffer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
45203 参照

java - Java でダイレクト バッファをガベージ コレクションする方法

不適切に破棄された直接バイト バッファーに分離したメモリ リークがあります。

GC は、これらのバッファーを保持するオブジェクトを収集しますが、バッファー自体は破棄しません。バッファーを含む一時オブジェクトを十分にインスタンス化すると、次の励ましのメッセージが表示されます。

私はこの問題を調べていて、どうやら

動作しない。

0 投票する
2 に答える
2537 参照

java - Java:プリミティブ配列でタイプパニングを使用していますか?

バイト配列を他のプリミティブ型配列との間で変換できるようにする必要がありますが、キャストする代わりに、型の punningが必要です。キャストなしの生のコピーの正しい用語は?

次のことができると思いました。

残念ながら、コンテンツを「ビットごと」または「生」にコピーして新しい IntBuffer を作成するのでbb.asIntBuffer()なく、既存の ByteBuffer に新しい「ビュー」を作成するようです。だからこそ.array()、失敗することが意図されています。

JDKのソースをブラウズしたところ、これらすべてのバッファクラスで使用され、必要なことを実行するクラスがほとんど見つかりませんでしたが、内部です( class などUnsafe)。

ObjectInputStreamバイトバッファをラップしてプリミティブ値を読み取ることで目標を達成できると.readInt()思いますが、面倒で遅い回避策になると思います。

それで、魔法のプリミティブ型の算術演算(シフト、エンディアンのチェックなど)を行わずに可能な他の解決策はありますか?

注: 両方向が必要です: byte[12] -> int[3]、および int[3] -> byte[12]

0 投票する
3 に答える
2353 参照

java - ByteBuffer リサイクル クラス

指定された長さと少なくとも同じ大きさを取得でき、使用中のオブジェクトをロックして、コードで使用されている間は使用できないようにするByteBufferリサイクルクラスをどのようにコーディングするのだろうかと思っています。これにより、既存のものを使用する代わりに、などを何度も再構築することができなくなります。これを非常に効果的に実行できる既存の Java ライブラリはありますか? Javolution がオブジェクトのリサイクルに対応できることは知っていますが、要件が設定されているこのコンテキストのクラスにそれが適用されるのでしょうか?ByteBufferByteBufferDirectByteBuffersByteBuffer

0 投票する
1 に答える
550 参照

java - 直接java.nio.ByteBufferをサポートしていないJVMはどれですか?

Java NIO (Java 1.4以降)のリリースノートには、直接ByteBufferのサポートはオプション機能であると記載されています。どのJVMベンダー/フレーバーがそれをサポートしていないのか知りたいですか?JNIライブラリは常にマネージドByteBufferをコーディングし、最適化として直接ByteBufferを委任する必要がありますか?

ありがとう

0 投票する
1 に答える
22013 参照

java - JNI-ByteBufferパラメーターを使用したネイティブメソッド

私は方法を持っています:

このメソッドのjavahC/C++ヘッダーによって生成されます。

jobject(つまりByteBufferインスタンス)からデータ配列を取得するにはどうすればよいですか?

0 投票する
7 に答える
36855 参照

java - OutputStreamからByteBufferにデータを入れる方法は?

Javaでは、OutputStream(自分でそのストリームにデータを入力する)のコンテンツをByteBufferに入れる必要があります。簡単な方法でそれを行う方法は?

0 投票する
2 に答える
4683 参照

iphone - CGDataProviderCopyData() は実際にバイトをコピーしますか? それともポインターだけ?

私はそのメソッドをできるだけ速く連続して実行していますが、速いほど良いので、CGDataProviderCopyData()実際にデータをバイト単位でコピーしている場合は、そのデータに直接アクセスするためのより高速な方法が必要だと思います。 ..メモリ内のバイトです。CGDataProviderCopyData()実際にデータをコピーするかどうかは誰にもわかりますか? それとも、既存のデータへの新しいポインターを作成するだけですか?

0 投票する
5 に答える
22235 参照

c# - バイト配列をジャンクで埋める方法は?

私はこれを使用しています:

私が理解しているように、これは0で満たされた10kbのバッファ配列を初期化します。

この配列を毎回ジャンクデータで埋める(または初期化する)最も速い方法は何ですか?

その配列を5000回以上使用し、毎回異なるジャンクデータで埋める必要があるため、高速な方法を探しています。配列サイズも毎回変更する必要があります。

0 投票する
1 に答える
1142 参照

java - ByteBufferの一部を文字列に変換する

によって派生したバイトを含むByteBufferがありますString.getBytes(charsetName)。ここで、「含む」とは、文字列がByteBufferposition()との間のバイトシーケンス全体を構成することを意味しますlimit()

文字列を取り戻すための最良の方法は何ですか?(私がエンコーディング文字セットを知っていると仮定して)以下より良いものはありますか(少し不格好に見えます)

0 投票する
2 に答える
1640 参照

java - Java の ByteBuffer を使用して何百万ものメッセージを読み取る

これが私の問題です。1 つの大きな gzip ファイルです。何百万ものメッセージ。

各メッセージは次のもので構成されます。

に応じて、TYPEのオフセットから数バイトを読み取り、PAYLOADメッセージを受け入れるか拒否するかを選択する必要があります。

私は java.io.DataInputStream を使用してこの種のことを行う方法を知っていますが、これは java.nio.ByteBuffer の完璧なアプリケーションのようです (こちらを参照してください! )。ただし、セットアップの助けが必要です。

では、ByteBuffer を使用して gzip ファイルからメッセージを読み取るにはどうすればよいでしょうか?

アップデート

私が見たいのは、ByteBuffer を効果的に使用するための正しい軌道に乗せることができるコードの骨格実装だと思います。ありがとう!