【问题标题】:Coroutines with a growing stack in CC 中具有不断增长的堆栈的协程
【发布时间】:2011-08-02 21:11:17
【问题描述】:

我想在 C (Linux) 中使用协程,但我不想为每个协程浪费大量空间。我想知道在给定MAP_GROWSDOWN 的情况下使用mmap() 为堆栈分配空间,但我在某处读到它已损坏,您对此了解更多吗?

【问题讨论】:

    标签: c linux mmap coroutine


    【解决方案1】:

    但我不想每个人都浪费很多空间

    别担心。您的协程可以有一个很大的堆栈,但它不会导致任何性能或资源问题,除非堆栈实际上被使用。直到那时,内存的逻辑页面才会被分配物理页面。如果它被使用,那么你需要它,不是吗?

    只需使用适当大小的堆栈即可。

    【讨论】:

    • 那么你的意思是我应该分配一个大的mmap 映射并且在物理接触之前不会使用内存?
    • 请注意:即使不使用内存,也可能耗尽虚拟地址空间。
    • @Sylvain,我意识到这一点;谢天谢地,我的目标是 64 位架构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2021-12-08
    • 2011-03-23
    • 2011-04-04
    • 2012-10-08
    • 2019-12-01
    • 2016-02-24
    相关资源
    最近更新 更多