不要なChannelFutureを作成せずにNettyチャンネルに書き込むことはできますか? (GC用に不要なオブジェクトを生成しないで...)ChannelFutureなしのNettyチャンネルへの書き込み
答えて
あなたは本当にあなたがChannelFuture
を作成しない希望する場合は、ネッティー3のためにこれを行うことができます。
Channels.write(ctx, Channels.succeededFuture(channel), message);
Channels.succeededFuture(..)
は、チャネルのローカルシングルトンオブジェクトを返します。ただし、すでに完了しているため、返された未来にリスナーを追加しないでください。
ctx.write(msg, ctx.voidPromise());
ChannelHandlerContext.voidPromise()
が満たされることはありませんダミーシングルトン約束を返します。
はネッティー4では、あなたは無効と約束を使用することができます。リスナーを追加する、またはリスナーが実行されるまで待機するなどの操作は、すぐに失敗します。
いいえ... ChannelFutureは常に作成されます。しかし、ChannelFutureは安価で小さなものなので、最適化を探すより良い場所があると思います。
私はもっと重要なのは、システムコールでは書き込みが高価になる可能性があるので、Channel.write(..)をできるだけ少なく呼び出すことだと思います。したがって、複数のバッファを送信する必要がある場合は、それらをすべて1つに入れ、Channel.write(...)を1回だけ呼び出すことができます(たとえば5回ではありません)。
SMTPでは、SMTPサーバーがPIPELINING拡張機能をサポートしていて、リソースを最適に使用するなどの場合にこれを行うことができます。
ありがとうございます。 – Eirenliel
- 1. Nettyチャンネル書き込みとフラッシュ書き込みメッセージなし
- 2. Nettyチャンネルの書き込みがハンドラに到達しない
- 3. Netty ChannelFutureの仕組みは?
- 4. Netty bind ChannelFutureが完了しない
- 5. Nettyは書き込みしません
- 6. 書き込み時のNettyバッファリング応答
- 7. Netty ChannelFuture通知がデッドロックを引き起こさない方法
- 8. ファイルへの書き込み
- 9. DataContextへの書き込み
- 10. Wikiへの書き込み
- 11. Sqlalchemyへの書き込み
- 12. ファイルへの書き込み
- 13. アンドロイドエミュレータファイルシステムへの書き込み
- 14. ハフマンアルゴリズムファイルへの書き込み
- 15. ファイルへの書き込み
- 16. エアフローログへの書き込み
- 17. フレームバッファへの書き込み
- 18. CSVへの書き込み
- 19. 接続ノードの書き込みノードへの書き込み?
- 20. テキストのファイルへの書き込みと書き込みR
- 21. xlsx書込みcell_valueエラー、新しいワークシートへの書き込み
- 22. 電子は、USBドライブへの書き込みと書き込み
- 23. ファイルへの書き込みと書き込み
- 24. Android - オンラインmysqlデータベースへの書き込み/書き込み
- 25. I2C書き込みプロトコル:レジスタへの書き込み方法?
- 26. Python:ファイルへの書き込みと書き込みエラー
- 27. ファイルへの読み書きの高速読み込みと書き込み
- 28. 遅延なしでCSVへの書き込みを書く
- 29. 大きなJSONObjectのファイルへの書き込み/読み込みAndroid
- 30. AbstractLoggingActorはFile Appenderへの書き込みではなく、Java Akkaのコンソールへの書き込み
ありがとう、それは役に立ちます。 – Eirenliel
successedFutureにハンドラを追加するとどうなるのですか?これを行うコードは、未来がすでに成功していることを認識していないかもしれませんか?私の経験によれば、リスナーは追加された後すぐに呼び出されます。これはほとんどの人が私が思っているものです。それとも、時間が経つにつれてリスナーを集めるシングルトンなのでしょうか?この点に関して、Channels.succeededFuture(..)と新しいSucceededChannelFuture(...)の違いはありますか? – user462982
@trustin - Netty 5の構文をこの質問にインラインで表示できますか? – jeevatkm