問題タブ [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
Java では、異種データ (数値と文字) を含むファイルを高速に解析したいと考えています。
私はByteBuffer
メモリマップファイルについて読んでいます。
コピーすることはできますが、データを解析するときに注意が必要です。さまざまなバイトを割り当ててやりたいと思います。しかし、それはエンコーディングに依存するようになりますか?
たとえば、ファイルの形式が次の場合:
someString 8
some other string 88
String
またはInteger
オブジェクトに解析するにはどうすればよいですか?
ありがとう!
うど。
java - プリミティブのキャストとバイトウェイのトリミング
アルゴリズムの一部について意見やアドバイスを求めたいと思います。
対。
基本的に、キャストにパフォーマンスの違いがあるのか 、それともより大きなByteBufferを使用する方が良いのかを知りたい.
ありがとうございます。それでは、お元気で、
マレク
java - Javaビットマップをバイト配列に変換する
バイトの呼び出しcopyPixelsToBuffer
がすべて0になった後、バッファを見ると...カメラから返されるビットマップは不変です...しかし、コピーを実行しているので、それは問題ではありません。
このコードの何が問題になっている可能性がありますか?
android - ByteBuffer がメモリを解放しない
Android では、System.gc() を呼び出した場合でも、直接 ByteBuffer がメモリを解放するようには見えません。
例:やっている
は、ログに 2 つの数値を示します。2 番目の数値は、最初の数値よりも少なくとも LARGE_NUMBER 大きくなります。
どうすればこの漏れを取り除くことができますか?
追加した:
C++ 側で alloc/free を処理するという Gregory の提案に従って、次に定義しました。
次に、JAVA側でByteBufferを取得します
そしてそれを解放します
残念ながら、うまく割り当てられますが、a) に従ってメモリが割り当てられたままになりDebug.getNativeHeapAllocatedSize()
、b) エラーが発生します。
私は今、完全に混乱しています。少なくとも C++ 側のことは理解していると思っていました... なぜ free() はメモリを返さないのですか? そして、私は何が間違っていDeleteGlobalRef()
ますか?
java - Javaでサーバーからデータを読み取る際に必要なヘルプ
DataInputStreamsで少し問題があります。
だから私はローカルサーバーにデータを送っています、私が読んだバイトはこのフォーマットに従うことを知っています
文字列であることを指定する0x01
次にランダムなバイト数
末尾に0x000x00が続き、
サーバーからの読み取りに問題がありますが、
これが私の読書方法です
私が少し曖昧な場合は私に知らせてください。
私はデータを取り戻していますが、完全には正しくありません。基本的に、最初の要素は0x01で文字列を指定し、次に文字列をバイト単位で、最後の2つの要素は0x00と0x00で、バイト配列を介して送信します。 、その後、このデータはサーバーから私に返送されます、サーバーは間違いなくデータを受信します、ちょうど私がそれを読み返しているとき、それは正しくありません、文字は失われます
このコードは、データを0x01の形式でエンコードし、次にメッセージをバイト単位で、次に0x00,0x00の形式で書き込みます。
java - java.nio.ByteBuffer を拡張する Java Circular Byte Buffer
SO などで参照されているすべての Java 循環バイト バッファー実装は、java.nio.ByteBuffer を拡張していません。これは、SocketChannel で使用するために必要です。ByteBuffer を拡張するオープン ソースの実装を知っている人はいますか。私は自分で書いてみましたが、位置と残りの関数が最終的なものであり、それらをオーバーライドしてヘッドを調整し、バッファオーバーフローの例外を防ぐことに気付いたときに行き詰まりました。ソケット チャネルを介して 5000 のメッセージを送信すると、すべてのメッセージがリニア バッファーの先頭にコピーする必要があり、メッセージあたり約 450ms または 90us (10 パケットを含むため、パケットあたり 9us) が追加されます。現在、私が考えることができる唯一の方法は、すべてのメソッドをオーバーライドしてすべてを書き直すことです。何か案は?
c# - UDPパケットを正しく書き込む方法
少し前に書いたC++プログラムからコードの一部を書き直そうとしていますが、バイト配列に正しく書き込むことができるかどうか、または別のものを使用する必要があるかどうかがわかりません。C#.NETに変更しようとしているコードは次のとおりです。
c# - C ++からC#に変換されたコードの問題
昔書いたC++アプリケーションのコードをC#に変換しました。C ++では、ビットバッファーであるライブラリを使用していましたが、C#の知識が不足しているため、変換がやや複雑になっています。
アプリケーションにクエリを実行し、値を適切にキャストせずにByteWriterを使用すると(bf.Write(-1)やbf.Write( "stringhere")のように、クエリプログラムは少なくともクエリを実行しますが、間違った情報を取得するだけです。値を適切に(long、byte、shortなどに)キャストすると、完全に壊れてしまい、クエリアプリケーションはそれを認識しなくなります。
C++コードスニペット
C#コード
// ---------------------------------------------------
java - 低レベルUDPメッセージングシステム用のByteBuffersの代替
私は暗号化されたP2Pアーキテクチャの低レベルUDPメッセージングレイヤーに取り組んでいます。興味があれば、そのgithubページで詳細を読むことができます。
私は、POJOをコンパクトなByteBufferに変換するきちんとしたシリアル化フレームワークと、対称および非対称の暗号をかなり簡単に使用できるようにするさまざまなライブラリを構築しました。
私は現在、動的プロキシを利用してGWTのRPCメカニズムと同様の機能を実現するメッセージングフレームワークに取り組んでいます。
私の問題は、早い段階でシリアル化メカニズムをByteBuffersとの間で読み書きすることにしたことです。私は今、これにはいくつかの問題があることに気づいています。
- オブジェクトをシリアル化する前に、最大バイトバッファサイズを知っておく必要があります
- それらは変更可能であるため、エラーが発生しやすくなります
- それらはDatagramPacketと特に互換性がなく、DatagramChannelsは混乱を招きます
このフレームワークでシリアル化を実装する別の方法を誰かが提案できますか?
java - ByteBuffer 配列から一意の要素と一意でない要素を分離するための ByteBuffer の HashSet (実際には整数)
私は s の配列を持っていますByteBuffer
(実際には整数を表します)。配列内の一意の ByteBuffers と非一意の ByteBuffers (つまり、整数) を分離したい。したがって、私はこのタイプの HashSet を使用しています:
HashSet<ByteBuffer> columnsSet = new HashSet<ByteBuffer>()
HashSet
そうするのが良い方法かどうか知りたかっただけですか?ByteBuffer
そして、もし私がのためにそれをやったなら、私はより多くのコストを支払うことになりInteger
ますか?
(実際には、この操作の後に書き戻す必要があるDBからシリアル化されたデータを読み取っているため、bytebufferからIntegerへのシリアル化と逆シリアル化を避けたいです!)
これについてのご意見をお待ちしております。