2013-04-02 2 views
-4

Я попытался использовать класс File и класс FileStream для чтения данных из большого файла или записи большого количества данных в файл.Производительность System.IO.File vs System.IO.FileStream

Предположим, я использую C# в Visual Studio 2010. Какой класс предлагает мне лучшую производительность и почему?

+6

Вы пробовали оба? http://ericlippert.com/2012/12/17/performance-rant/ –

ответ

0

Лучший способ узнать, как создать некоторые примеры приложений, используя их, и протестировать их на основе ваших входных данных. Таким образом, у вас будет научное доказательство, чтобы основывать ваше решение. Прочитайте блог Эрика Липперта post, как предложил Soner Gönül в комментариях.

Если у вас есть две лошади, и вы хотите знать, какой из них - это , то быстрее, чем гонки ваших лошадей. Не пишите краткие описания лошадей , размещайте их в Интернете и спрашивайте случайных незнакомцев, чтобы угадать , что быстрее! Даже если честно, вы получили точный ответ: , как бы вы не сомневались в его точности? Вы можете легко и точно узнать, какая из двух программ выполняется быстрее, запустив как самостоятельно, так и измерив их с помощью секундомера. - Eric Lippert

2

A FileStream - это единственный способ сделать (нормальный) файл IO. Любой метод класса File использует FileStream для доступа к файлам.

Таким образом, используя FileStream, вы будете ближе всех к файловой системе, но методы в классе File не добавят много накладных расходов, поэтому вы сможете превзойти их только в том случае, если у вас есть специальные знания о фактических файлах, которые вы хотите работать с ним, что позволяет вам каким-то образом оптимизировать доступ к файлам.

0

Если вы используете LARGE-файлы, FileStream - единственный способ пойти - с помощью File будет считываться весь файл в память. При использовании FileStream вы сможете читать/записывать части файла. При этом попробуйте сначала Файл (его намного проще использовать) и посмотрите, работает ли он нормально.

Смежные вопросы