none
请问在32位元环境下,对于大于4GB内存是否能被利用的问题。 RRS feed

  • 问题

  • 近日注意到对于32位元环境下,ReadyFor4GB这款软件的讨论不一。故在此请教技术人员,32位元环境下,有没有可能Patch系统文件后,从而识别,并且正确的利用大于4GB的内存空间?

    另,Patch后,可以看到内存显示为系统实际安装内存,但这真的能被全部利用,或者不过只是虚报?
    2011年7月3日 14:43

答案

  • 这个问题已经讨论了n年了,看 technet library 中 搜 企业内存架构 吧。

    32位平台上 开启PAE是可以识别和使用超过 4G内存的,但是 PAE 只是 OS 级别的机制,应用程序也要能使用超过4G的内存才行,目前也只有 MS 自己的 SQL 可以通过 AWE (地址窗口扩展) API 来在在 32位的 Win server 平台上使用超过32位地址空间的的那部分内存。

    普通的应用在 PAE系统上还是受限于 32位地址空间,也就是说,OS 还是分配给它2G内核地址空间,2G用户地址空间来 供应用程序使用。也就是说 对一般应用,PAE系统上也就是能多并发一些应用而已 (OS 让它们用超过4G的那部分内存),这些应用还是以32位地址空间的方式运行,即使你有几十个G的内存。

    64位系统上,每个应用都可以有64位地址空间,相当于如果需要它可以用完所有可用物理内存 + 虚拟内存。这才是对比32位平台上的优势。

    当然,也就是对大型重载应用比较有用,一般家用软件,商业桌面软件,都不会有那种需求。

     

    另:多CPU系统上,包括多线程或者多核,PAE是自动开启的,这和多核的内存访问方式有关,无论你是否手工指定 /PAE 参数,或者实际有多少内存。


    2011年7月5日 8:14