3

stringwriter に書き込んでから、関数の最後にresp.Write(sw.ToString()). これは不要ですか?HttpResponse.Write を数回使用すると、ページが 2k であってもデータを複数回 (チャンク) 送信する可能性がありますか? HttpResponse.Write は StringWriter.Write とどう違うのですか?

4

2 に答える 2

1

出力の書式設定に Response.Write を使用する

可能であれば、ループを使用して文字列を連結し、ページ レイアウトをフォーマットすることは避けてください。代わりに Response.Write の使用を検討してください。このアプローチでは、ASP.NET 応答バッファーに出力が書き込まれます。データセットまたは XML ドキュメントをループ処理する場合、Response.Write を使用すると非常に効率的な方法になります。コンテンツをクライアントに書き戻す前に += 演算子を使用してコンテンツを連結するよりも効率的です。Response.Write は、再利用可能なバッファに文字列を内部的に追加するため、メモリのクリーンアップに加えて、メモリの割り当てによるパフォーマンス オーバーヘッドが発生しません。

から

ASP.NET パフォーマンスの向上

于 2010-02-09T13:31:46.327 に答える
1

この場合、中間文字列を作成する必要はありません。ネットワーク スタックが何をしているのか (HttpResponse.Write が複数の低レベル ソケット書き込みに分割されているかどうか) を気にする必要はありません。ただし、データができたらすぐに書き込むだけで、最高のパフォーマンスが得られます。

于 2010-02-09T13:32:47.450 に答える