2011-04-29 163 views
0

我知道堆內存是RAM的一部分。 但是堆棧內存也ram或堆棧內存的一部分是cpu寄存器的一部分。 .net4.0應用程序的堆棧內存的默認大小是多少?堆棧內存位置

回答

1

堆棧內存是RAM的一部分。就計算機而言,它與堆沒有區別。它只用於不同的方式。

+0

然後,從堆棧訪問數據的方式比較容易。 – 2011-04-29 09:27:40

+0

http://en.wikibooks.org/wiki/Microprocessor_Design/Computer_Architecture – 2011-04-29 09:32:08

+1

@slash shogdhe:在棧上_allocate_通常比較便宜,因爲它只是遞增指針,而在堆上通常使用更復雜的內存分配方案。堆棧中的對象也更有可能在緩存中可用。 – hammar 2011-04-29 09:40:37

0

通常情況下,程序代碼空間和堆內存是從內存空間底部(從零開始)分配的。通常,堆棧從內存空間的最頂端開始向下擴展。初始堆棧大小可以非常小(一頁),因爲當你超出它的時候,就會發生頁面錯誤,並且操作系統可以分配更多的空間,向下增長。順便提一下,在64位x86處理器中,64位地址空間中間有一個很大的「間隙」,因爲機器沒有實現完整的64位尋址。請參閱this on wikipedia