Replies: 1 comment 6 replies
-
这个不一定的。哪怕是 lazy,也只是在 |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
为了提高协程的性能,可以使用 一种叫栈试式内存分配器
比如 A 调用 B。肯定是 A 先分配。
B 后分配。
释放的时候,肯定也是 B 先释放。
然后 A 才被释放。
对吧?
既然如此,在自定义协程帧的分配器的时候,使用栈式分配策略。先一次性向 os 申请一片连续的内存。然后,每单创建一个新协程promise,就移动一下指针完成分配。释放的时候,也是简单的回退指针完成分配。
只有处在同一条调用链上的一系列协程函数,才共享同一个分配器。
也就是说,这个分配器最好是使用“协程本地存储”的方式存起来。然后每个协程函数,都通过获取协程本地存储的方式,获得这个分配器。再用这个分配器去分配新的 await promise 对象。
Beta Was this translation helpful? Give feedback.
All reactions