мин. 47 сек (1 запрос к базе и дальше перебор данных из результатов с отправкой пост запроса). Это шутка или у меня были слишком завышенные ожидания о легендарно хваленной скорости питона?
покажи
https://pastebin.com/6EJdPXJ9 самый банальный чистый код
Ну, у тебя тут куча общения с внешним миром и ты при этом меришь полное время. Фиг знает, что из этого занимает столько времени. Профилируй, скорее всего либо база тормозит, либо сеть.
Класс, замеряешь время отправки пост запросов, а утверждаешь что питон медленный
База не тормозит. К ней идет всего 1 запрос и дальше уже всё занимает цикл только. Сейчас сделаю проверку работы самого цикла только, хотя сомневаюсь, что там изменится что-то
Так всм!? Мне надо чтоб эти запросы и отправлялись быстро.
Откуда ты знаешь, что не тормозит? Решил угадать? Бывает, что один запрос три дня делается при удачном стечении обстоятельств. И requests.post в цикле — это далеко не дешёвая операция.
Так посоветуйте более легкий аналог request-a, ну. Я сюда не за осуждением пришел, а помощью. Сейчас указанный выше тредпул гляну тоже
Ты видимо не понимаешь что ты делаешь
Чекнул сейчас отдельно базу и цикл. Разница в 1 секунду всего получается. То есть база выдаёт за 1 секунду, а остальные почти 106 крутится цикл
Всм не понимаю!? Я просто хочу выполнить задачу, которая мне необходима и чтоб скрипт её выполнял за как можно более быстрое время
Ну так ты последовательно хуяришь 600 запросов, ожидаешь от каждого ответ перед следующим
У тебе большое время из-за задержек сети, понимаешь?
Дело не в лёгкости реквеста. Для отправки http-запроса нужно открыть соединение, послать туда данные, дождаться ответа, закрыть. И так в цикле. Если запросов много — это время. в любом языке, банально работа сети. Что можно сделать — не дожидаться ответа и отправлять за раз несколько запросов в фоне. Но учебник по сетевому программированию тебе в посте никто не напишет, иди и читай книжки.
И как сделать так, чтоб ответа не ждать? Я взял стандартную структуру
https://www.digitalocean.com/community/tutorials/how-to-use-threadpoolexecutor-in-python-3-ru начни с этого, посмотри как изменится время
Я так понимаю, что мне выше её и скинули. Сейчас гляну
Пасибо! Если ничего не изменится и даже ChatGPT не поможет, то вернусь 😁🤝
Один из вариантов. Но бездумно пробовать без понимания как это работает — тут тоже так себе вариант. Я бы всё же советовал сперва хоть какую-то книжку по сетям прочитать. Можно случайно долбануться и зафлудить сервер 600+ одновременными подключениями и словить бан он телеги.
Охринеть. Время выполнения с 107 сек. сократилось до 9, хотя я использовал всего 10 потоков. 😃 СПАСИБО!!! ❤️❤️❤️
А если увеличивать количество потоков, то время выполнения сокращается еще больше 🔥🔥🔥 Разъеб.
Обсуждают сегодня