Рассмотрим эту программу на Python:
import sys
lc = 0
for line in open(sys.argv[1]):
lc = lc + 1
print lc, sys.argv[1]
Запустив его на моем текстовом файле 6 ГБ, он завершается за ~ 2 минуты.
Вопрос: можно ли идти быстрее?
Обратите внимание, что такое же время требуется для:
wc -l myfile.txt
Итак, я подозреваю, что ответ на мой вопрос - просто «нет».
Обратите внимание, что моя настоящая программа делает что-то более интересное, чем просто подсчет строк, поэтому, пожалуйста, дайте общий ответ, не трюки подсчета строк (например, хранение метаданных счетчика строк в файле)
PS: я отметил этот вопрос как "linux", потому что меня интересуют только ответы, относящиеся к linux. Не стесняйтесь давать ответы, не зависящие от ОС, или даже от других ОС, если они у вас есть.
См. Также следующий вопрос