Web程序集中的堆栈大小和堆大小之间有区别吗?

时间:2019-02-06 19:28:56

标签: webassembly

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

1 个答案:

答案 0 :(得分:0)

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

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

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