С точки зрения производительности: функция File.Copy против File.WriteAllText в C#?
У меня есть содержимое файла в строке, и мне нужно поместить один и тот же контент в 3 разных файлах. Итак, я использую File.WriteAllText()
функция C# для помещения содержимого в первый файл. Теперь для других 2 файлов у меня есть два варианта:
- С помощью
File.Copy(firstFile, otherFile)
- С помощью
File.WriteAllText(otherFile, content)
Производительность мудрая, какой вариант лучше?
1 ответ
Если файл относительно небольшой, он, скорее всего, останется в кэше диска Windows, поэтому разница в производительности будет небольшой или даже может быть File.Copy()
быстрее (так как Windows будет знать, что данные одинаковы, и File.Copy()
вызывает API Windows, который чрезвычайно оптимизирован).
Если вас это действительно волнует, вы должны использовать это и рассчитывать время, хотя время, вероятно, будет полностью искажено из-за кэширования файлов Windows.
Одна вещь, которая может быть важна для вас, хотя: если вы используете File.Copy()
Атрибуты файла, включая время создания, будут скопированы. Если вы создаете все файлы программным способом, время создания может быть разным для разных файлов.
Если это важно для вас, вы можете программно установить атрибуты файла после копирования, чтобы они были одинаковыми для всех файлов.
Лично я бы использовал File.Copy()
,