Какой самый быстрый способ подсчитать общее количество строк текстового файла в С#?C#

Место общения программистов C#
Anonymous
Какой самый быстрый способ подсчитать общее количество строк текстового файла в С#?

Сообщение Anonymous »

мой код:

Код: Выделить всё

    int linenumber = File.ReadLines(path).Count();
но для файлов размером около 1 гигабайта требуется много времени (около 20 секунд).

Так кто-нибудь знает лучший способ решить эту проблему?

Обновление 6:

Я проверил ваши решения:

для файла размером около 870 размер МБ:

метод 1: { мой код время (секунды): 13

метод 2: (от MarcinJuraszek & Locke) (тот же) {

Код: Выделить всё

time(seconds) : 12


метод 3: (от Ричарда Диминга) { время (секунды): 19

метод 4: (от пользователя2942249) { время (секунды): 13

метод 5: (от Locke) { time(секунды): 13 то же самое для lineBuffer = {4096, 8192, 16384, 32768}

метод 6: (из Locke edition 2) { time(секунды): 9 для размера буфера = 32 КБ , время (секунды): 10 для размера буфера = 64 КБ

Как я уже сказал, в моем комментарии есть приложение (

Код: Выделить всё

native code
), который открывает этот файл на моем компьютере за 5 секунд. следовательно речь не о скорости hdd.

Код: Выделить всё

By Compiling MSIL to Native Code
разница не была очевидна.

Код: Выделить всё

Conclusion
: на данный момент метод Локка 2 быстрее, чем другой метод.

Поэтому я пометил его сообщение как Ответ . но этот пост будет открыт, если кто-нибудь найдет лучшую идею..

Я проголосовал +1 за дорогих друзей, которые помогут мне решить проблему.

Спасибо за вашу помощь. интересная идея получше.
С уважением
Умный человек

Вернуться в «C#»