サーバーからXMLファイルを取得し、内部のデータを処理するアプリケーションを作成しています。私の質問は、TCPはすべてのパケットが確実に到着し、そのデータをどのように分割するかを制御することは私の制御が及ばないため、バッファサイズを制限することは理にかなっていますか?もしそうなら、私はデータをチャンクで送信し、クライアント側でそれらを再構築することができます。明らかに、私は無限のバッファーを作ることはできません。XMLは256kbまでかなり大きくなる可能性があり、そのサイズのバッファーを予約することについて少し心配しています。データはAndroidデバイスによって取得されますが、デバイスには1GBのRAMがあると想定できます。
質問する
901 次
3 に答える
0
ネットワークスタックのデフォルトのバッファは、通常、平均して適切になるように調整されています。アプリケーションが特に異常でない限り(そのようには聞こえません)、バッファサイズを変更しない方がよいでしょう。エンドポイントが異なるという事実は、両方に最適なものを同時に簡単に選択することを妨げる緊張をもたらします。
提案されているように、受信側でストリーミングパーサーを使用する場合、バッファーサイズは実際には重要ではありません。ドキュメント全体のバッチ処理によって発生する遅延を減らす準備ができたら、メッセージを送信します。
于 2012-04-15T23:27:27.910 に答える
0
クライアント側で自分で再アセンブルする必要はありません。XML パーサーをソケット InputStream に直接アタッチするだけです。
于 2012-04-15T22:32:32.267 に答える
0
TCP 受信バッファ サイズは、転送されるデータのサイズとは関係ありません。明らかに、TCP ストリームを介してギガバイトのデータを転送することができ、バッファが同じサイズである必要はありません。通常、バッファー サイズはパフォーマンス (ネットワークとエンドポイントのプロセッサの両方) に関係し、小さい場合もあります。ほとんどの場合、既定の設定を変更する必要はありません。
于 2012-04-15T22:26:38.200 に答える