1

我知道堆内存是内存的一部分。但是堆栈内存也是ram的一部分或堆栈内存是cpu寄存器的一部分。.net4.0 应用程序的堆栈内存的默认大小是多少

4

3 回答 3

2

堆栈内存是 RAM 的一部分。就计算机而言,它与堆没有什么不同。它只是以不同的方式使用。

于 2011-04-29T09:25:31.730 回答
0

通常,程序代码空间和堆内存从内存空间的底部(从零开始)向上分配。通常,堆栈从内存空间的最顶端开始并向下增长。初始堆栈大小可以非常小(一页),因为当您超出它时,将发生页面错误,并且操作系统可以分配更多空间,向下增长。

顺便说一句,在 64 位 x86 处理器中,64 位地址空间的中间有一个很大的“间隙”,因为机器没有实现完整的 64 位寻址。在维基百科上看到这个。

于 2012-02-19T14:15:44.877 回答
0

.net4.0 应用程序的堆栈内存的默认大小是多少

这对于 .Net 和非 .net Windows 应用程序很常见。它是按线程分配的。每个线程都有自己的堆栈。典型数量为 1 MB。可以覆盖默认值:

  • 通过控制可执行标头来执行每个可执行文件。C++ 编译器中有/STACK选项,因此如果您使用 C++/CLI 创建 .NET 可执行文件,则可以设置该选项。显然,在 C# 或 F# 中没有控制它的选项。
  • 每个线程。System.Threading.Thread具有将堆栈保留作为参数之一的构造函数重载。
于 2022-01-09T18:12:12.273 回答