В настоящее время я пытаюсь прочитать 150 миллионов строк (из файла данных с информацией о биопоследовательности) с использованием Python. В настоящее время он читает 20 000 строк в секунду, что займет около полутора часов. Я должен прочитать 20 из этих файлов. Учитывая, что Python является языком очень высокого уровня, было бы лучше использовать Java для чтения файлов или разницу во времени, не столь значительную, чтобы гарантировать переход на другой язык?Как улучшить производительность выполнения программы чтения файлов
текущий код я использую:
lines_hashed = 0
with open(CUR_FILE) as f:
for line in f:
cpg = line.split("\t")
cpg_dict[cpg[0]] = ....data....
print lines_hashed
lined_hashed += 1
Отпечаток заявление есть только как здравомыслие, что программа не заглохнуть где-нибудь. Я предполагаю, что это также замедляет время работы. Есть ли способ проверить это без инструкции печати?
Спасибо.
Закомментируйте заявление о печати, вероятно, будет намного быстрее .... –
Зачем вам нужно «печатать строки» в каждой строке? Почему не каждые 100 000 или 1 000 000 строк? 'if lines_hashed% 100000 == 0: print lines_hashed'. Еще лучше, используйте 'for i, line in enumerate (f)' вместо 'lines_hashed'. – wflynny
не уверен в python, но некоторые классы в java на самом деле очень медленны, когда приходится читать ** строки **, потому что они читают 1 символ за раз и сравнивают его с \ n, создавая stringbuffer, добавляя все символы 1 после другого. – njzk2