【问题标题】:Is there a difference between the stack size and heap size in web assembly?Web组装中的堆栈大小和堆大小之间有区别吗?
【发布时间】:2019-02-06 19:28:56
【问题描述】:

我目前正在学习 Web 汇编,使用 C++ 和 emscripten 工具链。我了解内存如何与 C++ 中的堆栈和堆一起工作,以及 Web 程序集使用最大大小为 4GB(或浏览器允许的任何大小)的连续内存缓冲区。在 Web 程序集中的 C++ 中,在堆栈上分配数据的最大大小是否与最大内存大小不同。例如,我可以在堆栈上分配 C++ 中的所有数据,并能够使用最大内存,还是应该在堆上分配我的数据,并自己管理(使用智能指针)?

【问题讨论】:

    标签: webassembly


    【解决方案1】:

    我认为总内存(TOTAL_MEMORY 选项)包括堆栈和堆空间。

    您有 TOTAL_STACK= 选项允许更改保留给堆栈的大小。默认为 5MB。

    关于内存使用,您应该简单地执行常规 C++ 代码中的操作:有时堆栈上的情况会更好,有时使用智能指针或其他托管堆内存策略会更好,有时只需手动新建/删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-26
      • 2023-04-10
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      相关资源
      最近更新 更多