【发布时间】:2012-05-16 00:19:35
【问题描述】:
当您在堆上分配内存时,唯一的限制是可用 RAM(或虚拟内存)。它使 Gb 的内存。
那么为什么堆栈大小如此有限(大约 1 Mb)?什么技术原因阻止您在堆栈上创建非常大的对象?
更新:我的意图可能不清楚,我不想在堆栈上分配巨大的对象,我不需要更大的堆栈。这个问题纯属好奇。
【问题讨论】:
-
为什么在堆上创建大对象是可行的? (调用链通常在堆栈中。)
-
我认为真正的答案比大多数答案所描绘的要简单:“因为我们一直都是这样做的,而且到目前为止一切都很好,为什么要改变呢?”
-
@JerryCoffin 您是否阅读了迄今为止发布的任何答案?这个问题有更深入的了解。
-
@user1202136:我已经阅读了所有这些 - 但人们在猜测,我的猜测是,他们引用的许多因素可能在做出最初决定时都没有考虑到主题。创造一个短语,“有时雪茄只是雪茄。”
-
"我们应该将默认堆栈设置为多大?" “哦,我不知道,我们可以运行多少个线程?” “它在超过 K 的地方爆炸” “好的,那么,我们称之为 2K,我们有 2 Gig 的虚拟,那么 1 meg 怎么样?” “是的,好的,下一个问题是什么?”
标签: c++ memory-management