В настоящее время я размещаю новые экземпляры сопрограмм довольно часто (см. Код в моем ответе Вот).
Накладные расходы это не тривиально.
Я предполагаю, что есть какой-то способ сделать это дешевле, используя ранее выделенную сопрограмму?
Не знаете, как этого добиться?
Я мог бы использовать boost :: pool для сопрограммы Allocator
, Однако это не сработает для StackAllocator
, который является дорогим …
Сопрограмма содержит стек и управляющий блок (сохраненные регистры, размещенные на краю стека).
Вы не можете повторно использовать саму сопрограмму, но вы можете написать свой собственный стековый распределитель, который предварительно выделяет и кэширует стеки.
Вновь созданная сопрограмма может повторно использовать уже выделенный стек из кэша.