Итак, я запускаю несколько функций, каждая из которых занимает раздел из миллионного файла .txt. Каждая функция имеет цикл for, который проходит через каждую строку в этом разделе из миллиона файлов строк.Улучшите скорость при чтении очень больших файлов в Python
Он берет информацию с этих строк, чтобы узнать, соответствует ли она информации в 2 других файлах, одна около 50 000-100 000 строк, другая около 500-1000 строк. Я проверил, соответствуют ли строки, запустив циклы через другие 2 файла. После совпадения информации я записываю вывод в новый файл, все функции записываются в один и тот же файл. Программа будет производить около 2500 строк в минуту, но будет замедлять работу дольше. Кроме того, когда я запускаю одну из функций, она работает примерно 500 в минуту, но когда я делаю это с 23 другими процессами, она составляет всего 2500 минут, почему?
Кто-нибудь знает, почему это произойдет? Во всяком случае, я мог бы импортировать что-то, чтобы ускорить выполнение программы/чтение файлов, я уже использую метод with "as file1:"
.
Можно ли переделать несколько процессов, чтобы они работали быстрее?
больше нить! = Быстрее. Это зависит от того, сколько ядер у вас есть – Whitefret
, если все ваши данные могут поместиться в память, вы можете попробовать обработать свои данные с помощью модуля pandas - это очень быстро и очень эффективно. Не забывайте о самой медленной системе с диском ввода-вывода, это скорее всего будет вашим узким местом, а не количеством ваших потоков. – MaxU
1. Сколько ядер у вас есть? 2. Какая доля общего процессора - этот процесс, используя (если он близок к 100%, то больше ядер не поможет). 3. Как потоки попадают в начало «своего» раздела? Если им сначала нужно прочитать строки * n *, я удивлен, что это не замедлит работу. –