xem xét chương trình python này:Có thể tăng tốc độ python IO không?
import sys
lc = 0
for line in open(sys.argv[1]):
lc = lc + 1
print lc, sys.argv[1]
Chạy nó trên file văn bản 6GB của tôi, nó hoàn thành trong ~ 2minutes.
Câu hỏi: có thể đi nhanh hơn không?
Lưu ý rằng thời là yêu cầu của:
wc -l myfile.txt
vậy, tôi nghi ngờ anwer để quesion của tôi chỉ là một đồng bằng "không".
Cũng lưu ý rằng chương trình thật của tôi đang làm một cái gì đó thú vị hơn chỉ đếm dòng, vì vậy xin vui lòng cho một câu trả lời chung chung, không line-đếm-trick (như giữ một siêu dữ liệu đếm dòng trong tập tin)
PS: Tôi đã gắn thẻ "linux" câu hỏi này, bởi vì tôi chỉ quan tâm đến các câu trả lời dành riêng cho Linux. Cảm thấy tự do để cung cấp cho OS-thuyết bất khả tri, hoặc thậm chí khác-OS câu trả lời, nếu bạn có chúng.
Xem thêm follow-up question
có một cái nhìn cho một cuộc thảo luận rất giống nhau ở đây: http://stackoverflow.com/questions/845058/how-to-get-line-count-cheaply-in-python – SilentGhost
Có khả năng phần lớn thời gian đây là chi tiêu chờ đợi trên đĩa. –
Tôi đã trễ bữa tiệc, nhưng đối với các tệp lớn "sed -n '$ =' filename" nhanh hơn "wc -l" – philshem