Size: a a a

Programming Offtop

2020 April 16

AN

Alexander Nozik in Programming Offtop
В параллельном коде корутины будут в большинстве случаев быстрее. А в не-параллельном... ну сравнения делают, но пока никто не показал, что оно сильно медленнее. Там все не от функций зависит, а от того, как JIT это все заоптимизирует.
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
В параллельном коде корутины будут в большинстве случаев быстрее. А в не-параллельном... ну сравнения делают, но пока никто не показал, что оно сильно медленнее. Там все не от функций зависит, а от того, как JIT это все заоптимизирует.
Почему быстрее?
источник

AM

Andrew Mikhaylov in Programming Offtop
Это ж сахар ровно над теми же executor.post, какая разница-то.
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Почему быстрее?
Потому что треды не генерятся. Даже на тред пуле, корутины умные и не делают контекст свитч там, где он не нужен.
источник

AM

Andrew Mikhaylov in Programming Offtop
Ну Антон с ивент-лупами и сравнивает, понятно, что никто не предлагает сравнивать с созданием потоков на каждый чих.
источник

AN

Alexander Nozik in Programming Offtop
На тяжелых задачах, очевидно вообще без разницы
источник

AK

Anton Korotkikh in Programming Offtop
Andrew Mikhaylov
Ну, коллбеки -- это и есть заумный концепт континьюейшнов в чистом виде
это глубоко под капотом. по факту далеко не всё так просто. тебе приходится завозить некую механику работы со всем колбек хозяйством. поэтому не смотря на то, что где-то есть колбеки всё равно заходят разговоры о реализации continuations, скажем так. что в project loom, что в го, что в васме.
источник

AM

Andrew Mikhaylov in Programming Offtop
Свитч контекста -- хороший аргумент, но это деталь реализации котлиновских корутин, а тут концепт в общем обсуждается.
источник

BP

Bogdan Panchenko in Programming Offtop
Anton Korotkikh
будто бы корутины не плодятся. и плодятся они очень мало, там весьма примтивное устройство обычно, цепочка хендлеров хуяк хуяк и готово. не каких заумных концепций типа continuations, возни с контекстами, умного шедулера итд
Не плодятся, у меня просто цепочка саспендов, и только для работы с бд я переключаю диспачер (хотя не сильно то и надо). Не слежу за всякими continuations
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Ну Антон с ивент-лупами и сравнивает, понятно, что никто не предлагает сравнивать с созданием потоков на каждый чих.
Эвент лупы - это тоже не так тривиально. Куча лямбд руками генерится, а они не бесплатные. Перформанс это вообще вещь такая, без тестов непредсказуемая. Ну и люди, которые убиваются за 10 %, чем-то не тем занимаются
источник

BP

Bogdan Panchenko in Programming Offtop
А колбек нужно завернуть в колбек что бы потом это завернуть опять а колбек
источник

AN

Alexander Nozik in Programming Offtop
Andrew Mikhaylov
Свитч контекста -- хороший аргумент, но это деталь реализации котлиновских корутин, а тут концепт в общем обсуждается.
А в общем нету, они везде по--разному работают
источник

AM

Andrew Mikhaylov in Programming Offtop
Anton Korotkikh
это глубоко под капотом. по факту далеко не всё так просто. тебе приходится завозить некую механику работы со всем колбек хозяйством. поэтому не смотря на то, что где-то есть колбеки всё равно заходят разговоры о реализации continuations, скажем так. что в project loom, что в го, что в васме.
Это не "глубоко под капотом", это прям определение CPS.
https://en.m.wikipedia.org/wiki/Continuation-passing_style
Открываешь статью, читаешь, заменяешь слово continuation на слово callback, перечитываешь, а смысл не поменялся ни на йоту.
источник

AK

Anton Korotkikh in Programming Offtop
Bogdan Panchenko
Не плодятся, у меня просто цепочка саспендов, и только для работы с бд я переключаю диспачер (хотя не сильно то и надо). Не слежу за всякими continuations
за тебя рантайм это делает и много чего ещё и очень хитрого. например, work-stealing какой-нибудь между тредами
источник

BP

Bogdan Panchenko in Programming Offtop
Anton Korotkikh
нет. просто корутины это больше баланса между перфомансом и удобством. они человечнее и приятнее чем колбек-лапша, но если ты готво положить на всё ради перфа - то ты обмазываешься лапшой. идея такая
Лапша не дешовая, в шапке может захватывается контекст
источник

BP

Bogdan Panchenko in Programming Offtop
Anton Korotkikh
за тебя рантайм это делает и много чего ещё и очень хитрого. например, work-stealing какой-нибудь между тредами
Ну и ? Или ты хочешь сказать что обычный программер круче разрулит чем машина ?
источник

AM

Andrew Mikhaylov in Programming Offtop
Anton Korotkikh
за тебя рантайм это делает и много чего ещё и очень хитрого. например, work-stealing какой-нибудь между тредами
А ивент-луп тебе ровно то же самое не будет предоставлять? Или с чем мы корутины сравниваем?
источник

AK

Anton Korotkikh in Programming Offtop
Bogdan Panchenko
Ну и ? Или ты хочешь сказать что обычный программер круче разрулит чем машина ?
я хочу сказать, что колбеки примтивнее и за счёт этого быстрее, если у нас фокус задачи перфоманс на ио и всё.
(при условии, что у нас по обе стороны барикад очень квалифицрованные программеры)
источник

AK

Anton Korotkikh in Programming Offtop
Andrew Mikhaylov
А ивент-луп тебе ровно то же самое не будет предоставлять? Или с чем мы корутины сравниваем?
неа, ничего не будет особо. просто ебошит очереди колбеков. ну и выстрелить в ногу само собой проще или забить его вообще, заблокировать, побить мутабельный хреновину какую-нибудь одну на весь системный тред итд
источник

BP

Bogdan Panchenko in Programming Offtop
Anton Korotkikh
я хочу сказать, что колбеки примтивнее и за счёт этого быстрее, если у нас фокус задачи перфоманс на ио и всё.
(при условии, что у нас по обе стороны барикад очень квалифицрованные программеры)
Нет, посмотри Шипилева, просто что бы понять мысли человека который занимается перфомансом
источник