Мне нужно проверить не менее 20 тыс. URL-адресов, чтобы проверить, работает ли URL-адрес, и сохранить некоторые данные в базе данных.
Я уже знаю, как проверить, находится ли URL-адрес в сети и как сохранить некоторые данные вбаза данных. Но без параллелизма понадобится целая вечность, чтобы проверить все URL-адреса, так какой же самый быстрый способ проверить тысячи URL-адресов?
Я следую этому уроку: https://realpython.com/python-concurrency/, и кажется, что «многопроцессорная работа с привязкой к процессору»Версия "это самый быстрый способ сделать, но я хочу знать, если это самый быстрый способ или есть лучшие варианты.
Редактировать:
На основе ответов я буду обновлять постсравнение многопроцессорной и многопоточности
Пример 1. Вывести «Hello!»40 раз
Threading
- С 1 потоком: 20.152419090270996 секунд
- С 2 потоками: 10.061403036117554 секунд
- С 4 потоками: 5.040558815002441 секунд
- С 8 потоками: 2,515489101409912 секунд
Многопроцессорная обработка с 8 ядрами:
- Потребовалось 3,1343798637390137 секунд
Если вы используете 8Threads будет лучше, чем Threading
Пример 2, проблема, предложенная в моем вопросе:
После нескольких тестов, если вы используете более 12 потоков, поток будет быстрее. Например, если вы хотите протестировать 40 URL-адресов и использовать потоки с 40 потоками, это будет на 50% быстрее, чем многопроцессорность с 8 ядрами
Спасибо за вашу помощь