Я создаю метод в С#, который генерирует текстовый файл для Google Product Feed. Канал будет содержать более 30 000 записей, а текстовый файл в настоящий момент весит ~ 7 МБ.
Вот код, который я использую в настоящее время (некоторые строки удалены для краткости).
public static void GenerateTextFile(string filePath) {
var sb = new StringBuilder(1000);
sb.Append("availability").Append("\t");
sb.Append("condition").Append("\t");
sb.Append("description").Append("\t");
// repetitive code hidden for brevity ...
sb.Append(Environment.NewLine);
var items = inventoryRepo.GetItemsForSale();
foreach (var p in items) {
sb.Append("in stock").Append("\t");
sb.Append("used").Append("\t");
sb.Append(p.Description).Append("\t");
// repetitive code hidden for brevity ...
sb.AppendLine();
}
using (StreamWriter outfile = new StreamWriter(filePath)) {
result.Append("Writing text file to disk.").AppendLine();
outfile.Write(sb.ToString());
}
}
Мне интересно, является ли StringBuilder правильным инструментом для работы. Будет ли выигрыш в производительности, если я вместо этого использовал TextWriter?
Я не знаю тонкости производительности IO, поэтому любая помощь или общие улучшения будут оценены. Спасибо.