Я создаю метод в C #, который генерирует текстовый файл для Google Product Feed . Фид будет содержать более 30000 записей, а текстовый файл в настоящее время весит ~ 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?
Я не знаю много о производительности ввода-вывода, поэтому любая помощь или общие улучшения будут оценены. Благодаря.