在64位元的WIN7中,32位元的程式能使用到超過4G以上的記憶體位址嗎?

在64位元的WIN7中,32位元的程式能使用到超過4G以上的記憶體位址嗎?

小弟的疑問是,OS能定址到,但32位元程式不見得能使用得到吧?

或者是我的誤解,求大師解說.
99.99 wrote:
在64位元的WIN7中,32位元的程式能使用到超過4G以上的記憶體位址嗎?

小弟的疑問是,OS能定址到,但32位元程式不見得能使用得到吧?

或者是我的誤解,求大師解說.


x64 win7 本來就能使用超過4GB 主記憶體

根用什麼軟體 毫無關聯 x86軟體本來就相容....x64 OS

别看你今天闹得欢,小心今后拉清单,这都得应验的。不要干这种事情。头上三尺有神明,一定要有敬畏之心。
99.99 wrote:
在64位元的WIN7中,32位元的程式能使用到超過4G以上的記憶體位址嗎?
(恕刪)

一般沒特別修改過的32位元單一應用程式,只能定址(使用)最多2GB的記憶體空間
與作業系統是否為64位元無關

雖說可以在程式設計時即採取任務並行,或用一些特殊手段(像LAA)避開這個問題
但本質上仍無法根治且非常麻煩

其他的不多說,詳見微軟MSDN
Memory Limits for Windows Releases



jerry20530 wrote:
x64 win7 本來就能使用超過4GB 主記憶體
根用什麼軟體 毫無關聯 x86軟體本來就相容(恕刪)

我想您應該誤解了原PO的意思了
99.99 wrote:
在64位元的WIN7中,32位元的程式能使用到超過4G以上的記憶體位址嗎?
小弟的疑問是,OS能定址到,但32位元程式不見得能使用得到吧?
...(恕刪)

一般32位元程式的user space(data+instruction)是2GB,如果用 /LARGEADRESSAWARE 編譯,在64位元Windows下的user space(data+instruction)可到4GB。

另外32位元程式可以使用AWE API,去跟32-bit/64-bit Windows作業系統要求使用超過user space大小的記憶體,總使用量是可以超過4GB的,但僅限於存放程式的data,32位元的SQL Server 2005/2008,就屬於這類的應用程式。

用AWE API要來的記憶體只能放data這點其實還好,因為程式碼本身很少會肥大到需要GB級的空間,佔位置的,通常都是data。

因此純就您的問題回答,在64位元Windows下,單一32位元應用程式例如SQL Server是可以是使用超過4GB記憶體的。在32位元作業系統下,單一32位元應用程式也是可以是使用超過4GB記憶體的。
個人解讀99.99大提出的問題是
記憶體位址的問題
而不是容量的問題
不知是否解讀對了.....
凡骨 wrote:
個人解讀99.99大提出的問題是
記憶體位址的問題
而不是容量的問題
不知是否解讀對了........(恕刪)

如果指的是被實體定址在4GB以上的記憶體,答案仍然是可以。
RAM:Crucial 8GB*2
OS:Windows 7 Professional 64-bit
軟體:Adobe Photoshop CS5.1

請注意下圖「記憶體使用情形」


32-bit


64-bit
所以上圖顯示出
32位元軟體在64位元OS裡並無法直接使用定址在4G以上的位址囉?
99.99 wrote:
32位元軟體在64位元OS裡並無法直接使用定址在4G以上的位址囉?...(恕刪)

請搜尋微軟SQL Server 32位元版資訊,便知答案是可以的。資料庫應用程式耗用的記憶體更多,近十年前在x64還不普及前,就算是32位元版Windows配32位元版SQL Server應用程式,也本來就有供應用程式使用大量記憶體的解決方案了(AWE)。

SQL Server 32-bit雖然名稱有個"Server",但它不是作業系統,而是32位元資料庫應用軟體。


Whistle Blow wrote:
一般32位元程式的user...(恕刪)


詢問一個問題
如果一個32位元應用程式
定址空間剩下1.5GB
但最大的連續空間是500MB
若我getmem一個1GB空間
是否會無法取得而提示記憶體不足?
這種情況在64位元應用程式是否很能夠被避免?
謝謝~~
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!