2012-02-09 54 views
0

我有一個非常內存密集型C#桌面應用程序,我的問題是:增加了計算機更好的RAM(單個應用程序),或者它只是在同樣的支持許多應用程序更好時間?的內存限制應用程序可用

我的操作系統是Windows 7(64位)。

爲了解釋更多,我所知道的是,進程可用的內存是堆棧(每個線程)和堆。該堆棧獨立於計算機的RAM,通常是確定其大小的操作系統。但堆大得多,建議將大對象放在堆上(這就是C#中的new所做的,它從堆中獲取內存)。

所以問題再次是:擴展計算機的RAM擴展可用於每個進程的堆?每個進程都有一堆,還是隻有一堆?

回答

2

首先,我認爲這將是真正有用的,如果你潛入一點點進入操作系統的概念,如「進程的地址空間」,以及如何處理和虛擬內存工作在基層。 這似乎很好 - > [1]:http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory

每個進程都有自己的進程地址空間,從而有自己的堆。堆是適合動態內存分配的「虛擬地址空間」的一部分。它也取決於您的操作系統可以容納的可尋址內存的範圍 。例如,在32位系統中,最大可尋址範圍不能超過4GB。

添加更多的RAM可以通過減少抖動等事情而產生一些差異(不是一天一夜)。

+0

+1的精彩文章。非常感謝你。你說的對,我們的操作系統課程似乎錯過了很多重要的概念...... – OmarOthman 2012-03-18 02:49:20

相關問題