Рассмотрим питона программу:Возможно ли ускорение ввода-вывода python?
import sys
lc = 0
for line in open(sys.argv[1]):
lc = lc + 1
print lc, sys.argv[1]
Запуск на моем текстовом файле 6GB, он завершает в ~ 2мин.
Вопрос: можно ли ехать быстрее?
Обратите внимание, что в то же время требуется:
wc -l myfile.txt
так, я подозреваю, что Anwer моему quesion это обычный «нет».
Заметим также, что моя реальная программа делает что-то более интересное, чем просто подсчет строк, поэтому, пожалуйста, дать общий ответ, не линии-счетные-трюки (например, сохраняя количество строк метаданных в файле)
PS: Я отметил «linux» этот вопрос, потому что меня интересуют только конкретные ответы на Linux. Не стесняйтесь давать OS-агностик или даже ответы других ОС, если они у вас есть.
Смотрите также follow-up question
взглянуть на очень похожем обсуждение здесь: http://stackoverflow.com/questions/845058/how-to-get-line-count-cheaply-in-python – SilentGhost
Вероятно, большая часть времени здесь проводится ожидание на диске. –
Я опаздываю на вечеринку, но для больших файлов "sed -n '$ =' filename" быстрее, чем "wc -l" – philshem