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
-
为了提高协程的性能,可以使用 一种叫栈试式内存分配器
比如 A 调用 B。肯定是 A 先分配。
B 后分配。
释放的时候,肯定也是 B 先释放。
然后 A 才被释放。
对吧?
既然如此,在自定义协程帧的分配器的时候,使用栈式分配策略。先一次性向 os 申请一片连续的内存。然后,每单创建一个新协程promise,就移动一下指针完成分配。释放的时候,也是简单的回退指针完成分配。
只有处在同一条调用链上的一系列协程函数,才共享同一个分配器。
也就是说,这个分配器最好是使用“协程本地存储”的方式存起来。然后每个协程函数,都通过获取协程本地存储的方式,获得这个分配器。再用这个分配器去分配新的 await promise 对象。
Beta Was this translation helpful? Give feedback.
All reactions