Добрый день, я новичок в python. Написал скрипт, который перетягивает данные с yahoo finance и заполняет ими бд. На вход подается список из тикеров компаний. Но вот беда - когда ообрабатывается больше 16 акций за раз, то скрипт начинает повышать нагрузку на процессор, на 50-60 акции процессор вообще под 100 долбится, из-за чего обработка одной компании с 2 минут увеличивается до получаса. Выход есть - запускать за раз не больше 15-20 акций, но я хочу понять, что же я делаю не так, может чего не знаю. Все соединения с бд я закрываю после одного цикла(обработки одной акции).
Опять этот медленный Python! Выкиньте, и перепишите на Go
А если серьезно, вы конкурентно запускаете обработку или последовательно? Если конкурентно, то ясно, что будет медленнее, из-за постоянного переключения контекста
В общем, проблема была в моем недогляде. Выяснил, что больше всего проц нагружает postgresql. Раскидал весь функционал по классам и методам, и везде прописал закрытия соединения с постгресом, чтобы ничего не пропустить. Теперь все отлично.
Прислоните одну руку к монитору, а вторую к голове и громко мычите. Тогда все здесь присутствующие экстрасенсы почувствуют все ошибки в вашем коде, смогут его прочитать через астрал и сразу ответят на все ваши вопросы. Хором!
Я помычал 5 минут, как сигнал? А вообще, я спрашивал о каких-то общих рекомендпциях, быть может есть хорошая литература о построении таких систем. Код не скидывал, потому что, во-первых он ужасен по структуре, во-вторых он большой и скорее всего сюда не влезет. Но все равно спасибо
PashaLynx, вот и проклёвыаются у нас догадки о том, почему у вас всё тормозит: код ужасный и большой, в котором вы скорее всего запутались и наделали каких-нибдуь ненужных циклов с квадратичной сложностью. Но нет, вы в этом направлении проблем не ищете, вы хотите найти общие рекомендации или причины почему ЛЮБОЙ код на питоне может тормозить. Нет любой код тормозить не будет, эффект, который вы описали, обычно получается, когда кто-то наговнокодил и не может разобраться в написанном.
Не стесняйтесь, отдайте код на ревью, вам покажут проблемные места, которые имеет смысл переделать, может быть подскажут что почитать, чтобы код получался не таким ужасным по структуре.
Добрый день, доктор, я новичок в хирургии. Вырезаю у друзей аппендицит. Тыкаю скальпелем, ставлю зажимы, режу. Но вот беда - когда разрез становится больше сантиметра, пациенты орут, вырываются и убегают! Если привязывать крепче, давление подскакивает, пациент дёргается и мешает лечению, отчегооперация затягивается до двух - трёх часов. Выход есть - резать по чуть-чуть, дожидаться пока пациент устанет дёргаться и кричать, и возвращаться к процедуре через некоторое время. Однако я хочу понять, что же я делаю не так, может чего не знаю. Все места перед разрезом протираю спиртом, инструмент стерилизую..
Показывать видеозаписи хода операции не хочу - оень шумно и много крови.
Есть какие-то общие рекомендации?
.
PashaLynx, без примеров кода или хотя бы объяснения механики Вашей "обработки" тикеров невозможно определить, что у Вас так сильно может тормозить. Если параллельно запускаете столько потоков обработки, то и нагрузка на процессор будет повышаться. Насколько оптимально написан этот код, нам опять же неизвестно.