Size: a a a

Конференция C++ Russia

2021 July 21

YA

Yauheni Akhotnikau in Конференция C++ Russia
Если высокая нагрузка, то как вы будете оценивать стоимоть аллокаций для фреймов stackless coroutines? А так же стоимость и глубину вызовов resume?
источник

*

*cyberzx in Конференция C++ Russia
Стек преполнить можно и на стеклес. На высокой нагрузке всё равно всё будет в потоках работать, а у них стек весьма ограничен, хоть его размер и можно контролировать (но не в std::thread)
источник

EP

Egor Pugin in Конференция C++ Russia
1. Фреймы будут выделятся из арены, заранее выделенной.
2. Глубина решается модель азио, когда евент луп вызывает готовые корутины из себя, в итоге глубина стека всегда приверно равная и небольшая
источник

EP

Egor Pugin in Конференция C++ Russia
п.1 тоже, кстати, в азио реализован, кажется
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
По поводу второго пункта: откуда вы знаете сколько и каких короутин будет создано? У вас есть вызов async_read_coro, но во что он выльется? Где гарантии, что там только одна короутина?
источник

EP

Egor Pugin in Конференция C++ Russia
они все могут быть сброшены на евент луп и вызываться из него
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
И да, ваша уверенность основана на практическом опыте?
источник

EP

Egor Pugin in Конференция C++ Russia
да, на основе азио. Какой вопрос?
источник

EP

Egor Pugin in Конференция C++ Russia
управлять выделением память под корутины мы можем
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
Интересно прочитать про использование C++20 короутин в продакшене.
источник

EP

Egor Pugin in Конференция C++ Russia
начал использовать азио на небольших участках, всё в порядке
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
Asio именно с C++20 короутинами?
источник

EP

Egor Pugin in Конференция C++ Russia
да
источник

EP

Egor Pugin in Конференция C++ Russia
ещё был сетевой код на них же, но до большой нагрузки не дошёл проект, только мелкие локальные тесты
источник

IL

Ilya L in Конференция C++ Russia
Если про горутины
То там нет проблем со стэком
Он же расширяемый
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
А публично доступное описание этого опыта есть где-то?
источник

IL

Ilya L in Конференция C++ Russia
ну по сути да, фрейм может расшириться в любой момент
Но вроде в этом особых проблем "почти" нет
источник

EP

Egor Pugin in Конференция C++ Russia
есть какие-то небольшие эксперименты:
- обёртка libpq в корутины, но не добрался до построчного возвращения результата (это была цель)
https://github.com/egorpugin/examples/blob/master/pg/libpq_coro/simple_oop.cpp
источник

YA

Yauheni Akhotnikau in Конференция C++ Russia
Спасибо!!!
источник

EP

Egor Pugin in Конференция C++ Russia
источник