Anonymous
В моем случае очень много редиски - поэтому в профайлере это сразу бросается в глаза.
âDêšwu öBipci
if not str(any(map(lambda x: True==x, matches)).startswith(“F”)
if len(str(not str(any(map(lambda x: True==x, matches)).startswith(“F”))) == 4
Anonymous
https://redis.io/topics/pipelining
âDêšwu öBipci
Anonymous
write in C
Просто если это учитывать, то можно не разбивать на пачку функций там, где нужна скорость. Так вижу.
Pavel
Просто если это учитывать, то можно не разбивать на пачку функций там, где нужна скорость. Так вижу.
Где тебе нужна скорость, ты можешь в другом файлике начать с #include <Python.h>, например
Alex
Просто если это учитывать, то можно не разбивать на пачку функций там, где нужна скорость. Так вижу.
эм... если у тебя накладные расходы на вызов функции отнимают большИй процент времени, то у меня для тебя плохие новости.
Oleg
https://redis.io/topics/pipelining
Я думал там про проблему именно с питоновским драйвером. У тебя получается redis-драйвер с пайплайном работает медленно?
Anonymous
тру это всё больше чем 1?
Anonymous
Я думал там про проблему именно с питоновским драйвером. У тебя получается redis-драйвер с пайплайном работает медленно?
Я не юзал пайплайны, полагая искренне, что оно и так быстро ездит. Но профайлер сказал, что для меня у него плохие новости
âDêšwu öBipci
Что происходит?
Кодгольф наоборот.
Kolyann
Что происходит?
Обфускаторы-с
Pavel
чем отличаются функции? if True in matches: if matches.index(True):
один использует метод __contains__, втрой index
Aragaer
это было вроде одно время на стэке - code troll
Alex
тру это всё больше чем 1?
эм.. нет. в булевом выражении true это все что != 0
Alex
однако True равен целочисленной 1
Pavel
однако True равен целочисленной 1
потому что буль это финал сабкласс инта, вероятно)
Alex
естественно
Suren
>>> isinstance(True, int) True
Oleg
асинк, да. Но не acyncio.
ну так если параллельных запросов много, то все скорее всего упирается в ожидание получения коннетка из пула
Aragaer
>>> (True+True)*(True+True) 4
Vladimir
Так ты обращаешься по индексу 1. True == 1
Dk
>>> isinstance(True, int) True
Что? Я вкурсе, что это алиас
Alex
это не алиас
Vladimir
Это не алиас
Tishka17
ты ещё True is 1 проверь
Aragaer
>>> str(True) == str(1) False
Дарья Галактионова
например, мои ожидания 230 минимум, а лучше 250. Осилите?
Мы готовы это обсуждать, если ваш бэкграунд соответствует
Anonymous
ну так если параллельных запросов много, то все скорее всего упирается в ожидание получения коннетка из пула
Ну пока это не парит, просто сразу прорабываю в уме варианты, чтобы в случае чего можно было затюнить
Artem
>>> str(True) == str(1) False
Ну, ты сравниваешь строку "True" и строку "1". Так что логично :)
Vladimir
>>> str(True) == str(1) False
Ну так '''__str__''' разные)
Aragaer
йеп 8)
Aragaer
это не один и тот же объект, потому что у них разные __str__
Alex
Ну, ты сравниваешь строку "True" и строку "1". Так что логично :)
что подтверждает тезис о том чт оэто не алиас.
Anonymous
Ну и select.select просто красный на диаграмме. Но я так понимаю, это не лечится.
Aragaer
красный это значит, что он там сидит и ждет, пока не будут события
Oleg
Ну и select.select просто красный на диаграмме. Но я так понимаю, это не лечится.
Это как раз хороший знак. Значит что у тебя не выполняются cpu bound задачи в лупе, а большая часть времени проходит в ожидании IO
Vladimir
например, мои ожидания 230 минимум, а лучше 250. Осилите?
Добавь, что это на руки, а то ещё навычитают😂 и премии закодируют😂
Oleg
винда что ли?
Anonymous
Это как раз хороший знак. Значит что у тебя не выполняются cpu bound задачи в лупе, а большая часть времени проходит в ожидании IO
О, интересно. Я чет наоборот забеспокоился - ну там Спрофайлер не показывает нормально простой(или я не понял еще как его готовить. Профайлер pycharm)
Oleg
или самописный event loop?
Anonymous
но меня смущает что у тебя select используется
На Poll можно перевести. Но Poll учитывает только миллисекунды.
Anonymous
происходит что то странное https://pastebin.com/wEAskwHR есть куча картинок (по 2 фото одного человека) их надо сравнить я длибом определил и вырезал лица, ресайзнул в 250px по вертикали и сохранил сейчас загружаю, сравниваю, а face_encodings почему то у всех фоток одинаковые, что я сделал не так? shapr predictor длиба мне не понравился, решил эту либу исользовать т.к. она нормально сравнивала
Oleg
На Poll можно перевести. Но Poll учитывает только миллисекунды.
select сам по себе медленный. У него линейная зависимость от кол-ва сокетов, ожидающих события
Aragaer
и линейная же обработка результата
Oleg
epoll, kqueue наше все
Aragaer
уже снаружи селекта
Aragaer
я юзаю
Tishka17
я думал уже абстракций нагородили
Aragaer
ну я и нагородил
Tishka17
для общения с клиентами
Oleg
кто-то до сих пор юзает в коде select руками?
ну не обязательно прям руками. По-моему, все реализации event loop'ов поддерживают select
Pavel
для общения с клиентами
последний раз я его использовал в демонстрационных целях при обучении падавана
Pavel
года полтора назад
Anonymous
ну они не только селект же умеют обычно
Селекты древняя штука, которая поддерживается практически всеми возможными ОС. А модные Poll - уже нет. Это к слову.
Oleg
ну они не только селект же умеют обычно
конечно, но принудительно заставить их использовать seleсt можно. На винде select, по-моему, дефолтный
Rookie
нушотызанудствуешь
Извини) Просто рад тебя видеть)
Tishka17
1000 это много
Anonymous
1к сокетов - это 1к соединений.
Anonymous
Всмысле, это немного.
Oleg
Тем более если у тебя там счет на микросекунды, и что для тебя dict.get выполняется неприлично долго, то использование select это невероятный оверхед