协程——重用

Coroutine - Reuse?

本文关键字:重用 协程      更新时间:2023-10-16

我目前经常分配新的协程实例(请参阅我的回答中的代码)。

这个开销不是微不足道的。

我猜有一些方法可以通过重用以前分配的协程来降低成本?

不知道如何实现这一点?

我可以为协程Allocator使用boost::池。然而,这将不适用于StackAllocator,这是昂贵的…

协程包含一个堆栈和一个控制块(保留寄存器,放在堆栈的边缘)。您不能重用协程本身,但您可以编写自己的堆栈分配器来预分配和缓存堆栈。新创建的协程可以从缓存中重用已经分配的堆栈。