2011-12-29 94 views
2

我開發的.NET 32位應用程序,由於各種原因不能被編譯爲64位應用程序。行爲的在64位Windows(內存)32個應用程序

我需要同時運行許多這樣的,他們使用大量的內存。我想加載一個Windows 7的內存,因此我們希望使用64位版本的Windows 7,這樣我們就可以在這些機器上放置很多GB的內存。

我的問題是這樣的:我的應用程序的每個實例中使用的最大內存爲500MB〜。在Windows 7 64位中,這些32位應用程序將運行(我假設)在Windows中使用WOW64仿真層。當我開始運行這些實例越來越多的同時,將它們都被卡在RAM的底部2GB運行,或將Windows爲他們使用的是64位Windows中的內存可能更高地址範圍的分配內存?在這種情況下,32位軟件的可尋址內存限制僅限於每個實例的限制,還是將所有實例限制在最低2gb內存?

回答

2

你混淆了虛擬地址空間內存(物理地址空間)。您可以將超過4GB的內存放入32位系統中;你不需要移動到64位來獲得物理地址空間。每個進程都有自己的虛擬地址空間,因此每個進程都將獲得自己的2GB用戶模式地址空間。 (或者如果3GB/3GB或者4GB,如果在WOW64運行與/ LARGEADDRESSAWARE)

+1

你需要遷移到64位,如果你正在使用的操作系統的客戶端版本,以獲得物理地址空間,而不是服務器版本 – 2011-12-29 21:42:12

相關問題