heiher
V2EX  ›  编程

协程任务栈技术交流

  •  
  •   heiher · Apr 13, 2018 · 3506 views
    This topic created in 2953 days ago, the information mentioned may be changed or developed.

    Hi,

    在实现一个独立栈的协程,之所以没有使用共享栈,主要还是优先考虑的切换开销,不过实现中允许协程任务创建时指定栈大小,不必每个任务相同大小,一定程度上缓解浪费吧。但是,如果估算太小,当然是有栈溢出的风险的。

    那么,到底有没有既能不浪费内存,又能减少切换开销的栈解决方法呢?

    已有 thread: https://github.com/Tencent/libco/issues/80

    1 replies    2018-04-13 18:05:00 +08:00
    JamesRuan
        1
    JamesRuan  
       Apr 13, 2018
    你把栈空间当作资源去分配。
    分配简单则可能分配不均,浪费还是小事,stack overflow 了呢?
    分配复杂则可以接近按需分配,资源浪费小,但是开销大。
    但是你又不可能在分配前就精确知道需求,不然这个问题就不存在了。
    所以,最好两个都实现,让用户自己去挑,并为自己的选择负责。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5552 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    ♥ Do have faith in what you're doing.