問題タブ [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.
java - この場合、Java ByteBufferの代わりになりますか?
Android Profilerツールを使用していると、コードのパフォーマンスが重要な領域で大量のByteBufferを使用していることがわかりました。私は可能な限り最大のパフォーマンスヒットの最適化に取り組んできました(まだループ最適化のようなものに行くことを余儀なくされていません)、そしてByteBufferコードはそれが別の/より良い解決策に簡単に置き換えることができるように見えます。
問題:ByteBufferストリームにある4つの連続したバイトからintを取得します。これは、任意の長さで、現在(以下で、具体的には// <<<パーツを参照)一時ByteBufferで実行され、intを形成するために必要なバイトを取得します。もっと簡単なプロセスはありますか?
間違いがあればお気軽にご指摘ください。私はごく最近までByteBuffersを使ったことがなく、学びたいと思っています。
java - Java NIO/ MappedByteBuffer とマップ、ファイルの一部をチャンクで読み取る
大きなファイルの一部をループで読み取りたい。ファイル全体を読み取る必要がありましたが、うまくいきませんでした。ファイルが大きすぎるという例外が発生していました。コードを以下のリストに変更しました。以下のコードは、最初のチャンクのみを読み取ります。次のチャンクに移動するには、何を変更する必要がありますか。
java - Java DirectByteBufferラッパーはガベージコレクションされますか?
directbytebufferが割り当てられると、ガベージコレクションの対象にならないことは理解していますが、ラッピングオブジェクトがガベージコレクションであるかどうかは疑問です。
たとえば、新しいDirectByteBuffer dbbを割り当て、dbb.duplicate()を使用して複製(浅いコピー)した場合、同じメモリチャンクの周りに2つのラッパーがあります。
それらのラッパーはガベージコレクションの対象になりますか?私がやったら
私は最終的に自分自身をOOMしますか?
android - MappedByteBuffer を介して未加工の VBO データを OpenGL にロードする (機能しない)
Google が GDC 2011 で行った講演で提示された方法を使用して、圧縮されていない未加工の VBO データをロードしようとしました。残念ながら、私にとってはうまくいきません。そのためのハックな回避策を見つけることができました(以下のコードでコメントアウトされています)が、そのハックなしでこれを機能させたいと思います。これが私のコードのサンプルです:
java - glReadPixels()がByteBufferの入力に失敗する
さて、私はLWJGLを使用してOpenGLのウィンドウのスクリーンショットを撮ろうとしています。コードは次のとおりです。
と...
Display.update()の前に「Screenshot」ブロックを配置するなど、さまざまなバージョンのコードをすでに試しました。また、glReadBuffer(GL_BACK / GL_FRONT)とglDrawBuffer(GL_BACK / GL_FRONT)の組み合わせを使用しても無駄になります。
すべてのOpenGL状態とレンダリングを無効にしたので、空白の画面のみが表示され、glReadPixelsを使用してみました。空白の画面がバッファにあると想定されますが、バッファには何もありません。
glGetError()はエラーを生成しません。
正常に動作する同様のC+バージョンがあります。
NVIDIA Corporation GeForce GTS 450 / PCI /SSE2でWindows7、OpenGL 4.10、およびLWJGLバージョン2.7.1を実行しています。
だから問題は何ですか?何か案は?前もって感謝します。
java - byte[] を bytebuffer ネイティブメモリに変換する方法は?
解析するには大量のメモリをjni側に渡す必要があります。以前に GetByteArrayElements を使用してネイティブ ポインターを取得しましたが、このメソッドはメモリを直接使用するのではなく、常にメモリをコピーすることがわかりました。したがって、GetDirectBufferAddress を使用してメモリを直接取得し、メモリのコピーを回避します。これには、allocateDirect メソッドを使用してメモリを割り当てる必要があります。しかし、私に与えられたメモリは、ネイティブメモリではなくバイト配列です。byte[] を bytebuffer に変換する方法はありますか? ありがとう。
java - (objective-c)JNIからJavaにjbyteArrayを渡す最良の方法は何ですか?
現在、iSightカメラから画像データを取得しています。Javaに渡して処理したいと思います。私はもともとデータをjbyteArrayに入れて、jbyteArrayを返そうとしました。これは、プロセスごとに1回機能します。ネイティブ関数を2回呼び出すと、無効なメモリアクセスが発生します。
私はobjective-cとCocoaを使用しているので、JNF_COCOA_ENTER(...)関数とJNF_COCOA_EXIT(...)関数を使用する必要があります。残念ながら、jbyteArrayを返すことができない場合、そうするとJNF_COCOA_EXIT(...)が呼び出されなくなります。JNIランドからjavaランドにデータを渡すために直接ByteBufferを使用することが提案されました。残念ながら、私が使用しているすべてのリソースとリファレンスは、私の脳が理解できるほど簡単にこれを概説していません。これが「当たり前の」瞬間なのか、すでに質問されているのか(運が悪かったので検索しました)、深くお詫び申し上げますが...
1)この画像データをJavaに取り込む最も効率的な方法は何ですか?
2)これを実現するには、ByteBufferクラスをどのように使用する必要がありますか?(該当する場合)
ありがとう!
java - 実行中のJVMでMaxDirectMemorySizeを決定するにはどうすればよいですか?
DirectByteBuffersを使用してデータを格納するアプリケーションがありますが、MaxDirectMemorySizeが何であるかを知りたいので、誤ってそれを超えないようにします。
これを手動で構成せずに、プログラム内からMaxDirectMemorySizeをどのように把握できますか?
java - Javolution ByteBuffer の質問
私はJavolutionで次の実装をしています:
この通信クラスでは、データをソケットに入れる前に、RunScan オブジェクトの bytes[] を取得する必要がありますが、「//<<<<<<<」の行で BufferUnderflowException を取得します。
この方法は、他の場合にも機能します。この行が原因で例外が発生します。
これら2つのSigned32フィールドであるRunScanオブジェクトの8バイト(remaining()メソッドから)ByteBufferのみを返します。しかし、この行、
これら 2 つの配列のサイズを含む RunScan オブジェクトの正しい長さを返します。
ハードコーディングされた長さでそれらを宣言するときにこれらの2つの配列を作成すると(コンストラクターで「新しい」ものではない)、例外なく正常に動作します。
私たちの実装の何が問題なのかを理解してくれる人はいますか?
android - UsbRequest.queue(..) メソッドの受信バイト長を確認するにはどうすればよいですか?
Android 3.1 の UsbRequest クラスに問題があります。
これは私のコードです:
配列のサイズdata
は 4096 ですが、実際に受信したバイトの長さはそれよりもはるかに小さくなっています。
実際に受信したバイトのサイズを確認するにはどうすればよいですか?
ありがとう。