Size: a a a

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

2020 September 24

AV

Alexey Veselovsky in Конференция C++ Russia
если ты не используешь корутину, то она ничего не стоит! :-)
источник

DK

Denis Kotov in Конференция C++ Russia
Alexey Veselovsky
если ты не используешь корутину, то она ничего не стоит! :-)
)))
источник

m

magras in Конференция C++ Russia
Denis Kotov
А если ты не используешь рекурсию то она ничего и не стоит ;)
И то верно. =)

В целом мне оба инструмента нравятся. Просто у них разные задачи.
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
В ScyllaDB в своё время именно из-за простоя памяти отказались от stackful coroutines. Если на каждую выделять 128К стека, то накладно, а если жмотить и выделять меньше, то легко его весь вычерпать и огребать потом кучу проблем на высокой нагрузке.
источник

*

*cyberzx in Конференция C++ Russia
Denis Kotov
К примеру Rust тоже выбрал стек лесс
проблема стеклес корутин, в том, что они вирусные. ты можешь корутину можно вызвать только из корутины, а из не корутины нельзя
https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/

у стекфул такой проблемы нет.
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
А так библиотечное решение для stackless тоже существует, и уже много лет 😄 У Колхоффа в Asio были макросы, там буквально пара десятков строк.
источник

AZ

Alexander Zaitsev in Конференция C++ Russia
Vladimir Krivopalov
А так библиотечное решение для stackless тоже существует, и уже много лет 😄 У Колхоффа в Asio были макросы, там буквально пара десятков строк.
а можно ссылку? первый раз про это слышу просто :)
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Alexander Zaitsev
а можно ссылку? первый раз про это слышу просто :)
источник

AV

Alexey Veselovsky in Конференция C++ Russia
а вот в яндексе в основном юзают стекфул :-) по крайней мере на докладе от ребят что яндекс карты (точнее - маршрутизацию) делают ну и Антон Полухин тоже говорил про userver - там тоже стекфул
источник

VK

Vladimir Krivopalov in Конференция C++ Russia
Они даже для чистого С подходят, разве что танцев с бубном больше. Ну и по факту всегда приходится заворачивать такую корутину в shared_ptr, причём с enable_shared_from_this.
источник

*

*cyberzx in Конференция C++ Russia
Denis Kotov
В RTOS-ках стек-фулл вообще не вариант, слишком много памяти выделяться будет, даже если адаптировать под память чипа
как количество памяти соотносится с RTOS?  и что значит "слишком много". 8кб это много или нет?
зависит от железки и выполняемых ею задач. если тебе нужно 8кб памяти, а на борту 64кб, то почему бы не аллоцировать лишнее под стеки?
источник

DK

Denis Kotov in Конференция C++ Russia
*cyberzx
проблема стеклес корутин, в том, что они вирусные. ты можешь корутину можно вызвать только из корутины, а из не корутины нельзя
https://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-function/

у стекфул такой проблемы нет.
Не вижу проблемы, стартуешь сервис или даже все программу в Scheduler-е и делов то
источник

*

*cyberzx in Конференция C++ Russia
кстати, во FreeRTOS емнип как раз Stackfull co-routines используются
источник

AV

Alexey Veselovsky in Конференция C++ Russia
да они 50 на 50 используются в среднем
источник

DK

Denis Kotov in Конференция C++ Russia
*cyberzx
как количество памяти соотносится с RTOS?  и что значит "слишком много". 8кб это много или нет?
зависит от железки и выполняемых ею задач. если тебе нужно 8кб памяти, а на борту 64кб, то почему бы не аллоцировать лишнее под стеки?
А если тебе несколько коротину запустить каждая по 8кБ ? Уже многовато выходит
источник

*

*cyberzx in Конференция C++ Russia
Denis Kotov
Не вижу проблемы, стартуешь сервис или даже все программу в Scheduler-е и делов то
это уже ограничение
источник

AV

Alexey Veselovsky in Конференция C++ Russia
хоть ртос хоть не ртос
источник

AV

Alexey Veselovsky in Конференция C++ Russia
от задачи же зависит
источник

*

*cyberzx in Конференция C++ Russia
многовато это понятие относительное. на современных кристаллах памяти дофига
источник

DK

Denis Kotov in Конференция C++ Russia
*cyberzx
это уже ограничение
Все в жизни ограничение ... ) Я может и хочу макросы в С++ получше, но приходится использовать то что есть )))
источник