ByteBuffer(java.nio)は、バッファークラスよりも効率的(?)でデータを読み込むために使用する必要があります。私の質問は、マルチキャストアドレスからパケットを読み取り、それらをプリミティブオブジェクトに処理するUDPクライアントを中心にしています。 DatagramSocketからこれらのパケットを解析する最も効率的な/最速の方法は何ですか?今、私はByteBufferをラップし、そこから読むバイト配列のデータグラムパケットを持っています。私の目標は、新しいオブジェクトの作成を最小限に抑え、スピードを最大化することです。ByteBufferとデータグラムパケットのバッファー
答えて
DatagramSocket
はByteBuffer
に直接読み込むことはできませんが、代わりにDatagramChannel
を使用してください。
DatagramSocket _can_ ByteBufferに直接受け取ることができます(ゼロクロスを意味する場合は「直接」)。 ByteBufferをラップするDatagramPacketを作成します。受信()し、ByteBufferからデータを読み取ることができます。パケット構造とsend()と同じです。 – charstar
@charstar、私はそれが正しいとは思わない。 'DatagramPacket'コンストラクタはすべて' ByteBuffer'ではなく 'byte []'をとります。バッファーのバッキング配列を取ることができます。バッファーのバッキング配列がある場合にのみ使用でき、*直接*バイトバッファーにはバッファーがありません。 – finnw
ByteBufferは、効率性からではなく、プログラマの視点から効率的なアクセスを実現するための十分な機能がバッファにないという理由だけで使用されると思います。私は、基礎となるコードがほとんど重複しているので、効率に違いがあるとは思わない。
どちらかが単純なバイト配列を使用するよりも効率的かどうかは、必ずしも明確ではないことに注意してください.NIOのパフォーマンスは誤認しやすいです。
- 1. データグラムパケットFTPアプリケーション
- 2. QtAVとバッファーのクリーニング
- 3. Vimのタブとバッファー
- 4. 他のパブリッシャーとのバッファー - スプリングリアクター
- 5. UDPデータグラムパケット受信ループ遅延
- 6. ByteBufferのクリア
- 7. netty tcp bytebufferサーバーとクライアント
- 8. Loading:long、ByteBufferとProtoBuff with requirejs
- 9. バッファー・ジェネレーター
- 10. NSInputStreamバッファーのサイズ
- 11. HLSLの3Dバッファー?
- 12. Recvリングバッファーと単純バッファー
- 13. QtとBoost循環バッファー
- 14. ByteBufferから別のByteBufferへのバイトの転送
- 15. 既存のByteBufferの領域から新しいDart ByteBuffer?
- 16. ByteBuffer over SocketChannel
- 17. ByteBuffer parse unsigned int
- 18. Geotools:wgs84のバッファーのバウンディングボックス
- 19. 独自のzバッファー
- 20. 現代GPUのバッファー
- 21. Javaでデータグラムパケットを送信する
- 22. 2D深度バッファー
- 23. fread from charバッファー
- 24. Gstreamerバッファーpts
- 25. IOSスウィフトリードPCMバッファー
- 26. std :: stringとbyteバッファー(C++の違い)
- 27. アセンブリとバッファーどのように
- 28. Java/Android - Fast ByteBuffer Parsing
- 29. 大きなByteBuffer用のBufferedReader?
- 30. のByteBufferで、ssはStringBufferのある場所を..私はByteBufferの中で文字列バッファを置くしようとしていますByteBufferの
私はこの質問がより適していると思います[stackoverflow.com](http://stackoverflow.com)。 –