Size: a a a

2020 November 12

VA

Vadim Apenko in aiogram [ru]
Оно конечно будет работать, но всё равно выглядит грязно
источник

F🍭

Fenicu 🍭 in aiogram [ru]
thread_pool = ThreadPoolExecutor()

await loop.run_in_executor(
       thread_pool,
       partial(processor, param)
   )
источник

F🍭

Fenicu 🍭 in aiogram [ru]
выглядит нормально
источник

VA

Vadim Apenko in aiogram [ru]
Я не про то, что ты можешь три строки написать. А про то, что у тебя в асинхронном коде вдруг появляется контролируемый поток.
источник

F🍭

Fenicu 🍭 in aiogram [ru]
если задача тяжёлая, то это нормально
источник

F🍭

Fenicu 🍭 in aiogram [ru]
в этом нет ничего плохого
источник

VA

Vadim Apenko in aiogram [ru]
Fenicu 🍭
если задача тяжёлая, то это нормально
Да, ведь потоки пайтона так классно приспособлены для CPU-Bound операций)
источник

F🍭

Fenicu 🍭 in aiogram [ru]
в таком случаи ты выбрал не тот язык
источник

F🍭

Fenicu 🍭 in aiogram [ru]
для своей задачи
источник

VA

Vadim Apenko in aiogram [ru]
Fenicu 🍭
в таком случаи ты выбрал не тот язык
В таком случае ты не видишь дальше своего носа.
А представь, что мы из асинхронного кода породим не поток, а процесс)
Тогда шедулер Операционной системы сам поселит его на ядро и сбалансирует по нагрузке)
А в асинхронке у тебя будет только io корутина, которая будет смотреть на pipe процесса) Ни блокировок, ни потоков, и максимально доступные ресурсы для процесса (ведь это отдельный процесс)
источник

VA

Vadim Apenko in aiogram [ru]
никаких исполнений по 5мс от GIL
источник

F🍭

Fenicu 🍭 in aiogram [ru]
справедливо
источник

VA

Vadim Apenko in aiogram [ru]
Все задачи на пайтоне решаются прекрасно и я выбрал тот язык. Надо просто нормально планировать и писать нормально, а не "на потоках, потмоу что это просто в три строки"
источник

F🍭

Fenicu 🍭 in aiogram [ru]
я просто не выполнял настолько тяжёлые единовременные задачи, чтобы доходить до мультипроцессоринга
источник

🤔T

🤔 Thoughtful in aiogram [ru]
Fenicu 🍭
я просто не выполнял настолько тяжёлые единовременные задачи, чтобы доходить до мультипроцессоринга
Процессоринга лол
источник

ЕП

Евгений Петров... in aiogram [ru]
Vadim Apenko
В таком случае ты не видишь дальше своего носа.
А представь, что мы из асинхронного кода породим не поток, а процесс)
Тогда шедулер Операционной системы сам поселит его на ядро и сбалансирует по нагрузке)
А в асинхронке у тебя будет только io корутина, которая будет смотреть на pipe процесса) Ни блокировок, ни потоков, и максимально доступные ресурсы для процесса (ведь это отдельный процесс)
В мемориз, спасибо
источник

VA

Vadim Apenko in aiogram [ru]
Fenicu 🍭
я просто не выполнял настолько тяжёлые единовременные задачи, чтобы доходить до мультипроцессоринга
4 задачи по "производству гифок" на потоках выполняются примерно на 40% дольше, чем они же на процессах. Замерял на Raspi 4 с 4 ядрами.
Значения были от 20% до 55% (там инфлюкс фонил ещё)
Но считаю примерно 40%
источник

ЕП

Евгений Петров... in aiogram [ru]
Vadim Apenko
4 задачи по "производству гифок" на потоках выполняются примерно на 40% дольше, чем они же на процессах. Замерял на Raspi 4 с 4 ядрами.
Значения были от 20% до 55% (там инфлюкс фонил ещё)
Но считаю примерно 40%
Используется стандартный multiprocessing или какая-то обёртка вокруг него? Именно для вынесения на процессы
источник

VA

Vadim Apenko in aiogram [ru]
Всё же придётся показывать) Момент
источник

VA

Vadim Apenko in aiogram [ru]
Евгений Петров
Используется стандартный multiprocessing или какая-то обёртка вокруг него? Именно для вынесения на процессы
Я наговнокодил такую функцию. Её задача - запустить CMD процесс с переданными аргументами и следить за stdout и stderr
источник