私は何千もの動的に生成された行をテキストファイルに書き込む必要があります。 私には2つの選択肢があります。どちらは少ないリソースを消費し、他のものよりも速いのですか?何が少ないリソースを消費し、File.AppendTextまたはFile.WriteAllTextがStringBuilderに最初に格納されていますか?
のStringBuilderとFile.WriteAllTextを使用したA.
StringBuilder sb = new StringBuilder();
foreach(Data dataItem in Datas)
{
sb.AppendLine(String.Format("{0}, {1}-{2}",dataItem .Property1,dataItem .Property2,dataItem .Property3));
}
File.WriteAllText("C:\\example.txt", sb.ToString(), new UTF8Encoding(false));
B. File.AppendText
にusing(StreamWriter sw = File.AppendText("C:\\example.txt")){
foreach (Data dataItem in Datas)
{
sw.WriteLine(String.Format("{0}, {1}-{2}",dataItem .Property1,dataItem .Property2,dataItem .Property3));
}
}
http://ericlippert.com/2012/12/17/performance-rant/ –
ネットワーキングとデータベース書き込みが関係するため、できるだけ早くこの操作を行う必要があります。そして私はいくつかのボトルネックに関連しているので、私はあなたがリンクした記事を知らないので、私は必要なので、この質問をしています。 –
スピードがあなたの主な関心事であるかどうかはわかりません。メモリ使用量は明らかにあなたの意思決定を促進するはずです。データが常に小さい場合は、いくつかのテストを実行してどちらが速いかを判断できます。 – juharr