孫梅 王超
摘要:實(shí)驗(yàn)室準(zhǔn)備批量更新硬件設(shè)備,升級(jí)到8GB內(nèi)存。但我們?cè)跇訖C(jī)上安裝了32位的windows7操作系統(tǒng),發(fā)現(xiàn)可以識(shí)別到8G內(nèi)存,但是只能使用3.5G內(nèi)存。如此就不能享受大容量?jī)?nèi)存的優(yōu)勢(shì),更換64位系統(tǒng)肯定能解決這個(gè)問題,但是實(shí)驗(yàn)室的某些軟件在64位環(huán)境中卻是異常。為了解決這個(gè)矛盾,我們做出下列實(shí)踐。
關(guān)鍵詞:PAE;32位;64位
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)16-3821-03
Abstract:The PC in ourLaboratory needs to update to 8GB RAM.But The OS of win7 which is 32bit can only use the 3.5GB RAM,although other RAM can be detected. So we can not enjoy the advantage of Mass RAM.It is well-known that 64Bit OS support more than 8GB RAM. But some of our APP can notrun well in 64Bit system . We make research agendason solving the problem.
Key words: PAE;32bit;64bit
半導(dǎo)體器件價(jià)格的下降目前還是遵守摩爾定律,大容量、高速內(nèi)存的普及勢(shì)不可擋。但是目前卻出現(xiàn)了類似上世紀(jì)的軟件危機(jī)的狀況,軟件的應(yīng)用對(duì)大容量?jī)?nèi)存的使用出現(xiàn)適應(yīng)困難的局面,雖然出現(xiàn)了64位的操作系統(tǒng),但是32位的應(yīng)用程序還是占相當(dāng)大的比重,完全過渡到64位時(shí)代還需要一個(gè)過程。如何更快的融合進(jìn)64位系統(tǒng)就成為了研究的熱點(diǎn)。
1 分析原因
上世紀(jì)80年代從386開始,就已經(jīng)有了32位的CPU,內(nèi)存地址線是32位,這樣理論上最多可尋址4GB的RAM空間,但是主流的應(yīng)用程序很長(zhǎng)一段時(shí)間用不上這么大的內(nèi)存,新千年后進(jìn)一步普及到了36條地址線,使得理論尋址空間擴(kuò)展到了128GB,同時(shí)也出現(xiàn)了PAE技術(shù),即Physical Address Extension——物理地址擴(kuò)展。
這樣在32位的操作系統(tǒng)中,一些應(yīng)用程序,主要是驅(qū)動(dòng)程序就對(duì)“多余”的地址線進(jìn)行編程,用來尋址廠商自己設(shè)備的存儲(chǔ)空間。所以對(duì)于一般的用戶,微軟的windows系統(tǒng),如XP或win7等,在內(nèi)核級(jí)的代碼中對(duì)用戶能使用的最大內(nèi)存數(shù)作出了限制,這也是出于安全的考慮,因?yàn)槿绻脩舻膽?yīng)用程序使用的內(nèi)存空間和特定程序如驅(qū)動(dòng)程序使用的空間沖突,就很容易頻繁發(fā)生一致性錯(cuò)誤,造成令所有人厭煩的藍(lán)屏現(xiàn)象。
2 解決方案
出于安全的考慮,我們最好選擇原生支持大內(nèi)存的操作系統(tǒng),例如64位的win7或XP,當(dāng)然也可以選擇32位的windows服務(wù)器產(chǎn)品,該類產(chǎn)品對(duì)于PAE的支持良好,而且對(duì)用戶使用的最大內(nèi)存地址沒有限制。對(duì)于不玩游戲的用戶,真的很適合采用這類服務(wù)器產(chǎn)品,本人就是,但它不符合教學(xué)大綱,而且在安裝windowsLive時(shí)出現(xiàn)錯(cuò)誤。
我們也嘗試安裝64位的win7,相對(duì)于64位的XP,它的WoW64改進(jìn)還是蠻大的,WoW64(Windows-on-windows 64-bit)是windows操作系統(tǒng)的一個(gè)子系統(tǒng),理論上它允許我們?cè)谒械?4位的windows上執(zhí)行32位的程序。Intel65(AMD64/X64)上的WoW64不需要模擬指令。WoW64子系統(tǒng)只用通過在32位應(yīng)用程序和64位windows API之間增加一層,來實(shí)現(xiàn)32位環(huán)境。 它并不是軟件模擬,所以這層的效率消耗在1%以內(nèi)。但是經(jīng)過測(cè)試,在運(yùn)行我們的考試軟件或者本單位的撥號(hào)軟件時(shí)還是發(fā)生了兼容性的問題,而且暫時(shí)找不到這些軟件的64位的版本。其他的主流軟件一般都能找到相應(yīng)的64位版本,這樣就不能保證以后不出現(xiàn)類似的問題。所以我們又需要尋找其他的解決方式。
32位的操作系統(tǒng)也是支持PAE的,只是被限制了[3],如果能破解這個(gè)限制就可同時(shí)解決兼容性和應(yīng)用大容量?jī)?nèi)存的問題了。通過與windows Server 2008內(nèi)核類比,我們尋找破解win7系統(tǒng)內(nèi)核的方法。這種方法難度較大,但帶來的不兼容性則小的多,并且可以完美支持多至 128G 的內(nèi)存!他的具體做法如下:為避免原始內(nèi)核被破壞,首先復(fù)制系統(tǒng)內(nèi)核文件 ntkrnlpa.exe,并命名為 ntkr128g.exe,之后的修改都在 ntkr128g.exe 上進(jìn)行。用 hex 編輯器打開 ntkr128g.exe,查找下列兩個(gè)字符串:
特征串1:7C 11 8B 45 FC 85 C0 74 0a
特征串2:7C 10 8B 45 FC 85 C0 74 09
兩個(gè)特征串在內(nèi)核中都出現(xiàn)且只出現(xiàn)一次,雖然特征串內(nèi)容不同,但修改方式相同:把 0x8B 開始的 7 個(gè)字節(jié)修改成:
后7個(gè)字節(jié)修改成:B8 00 00 02 00 90 90
對(duì)于目前市場(chǎng)上的兩個(gè)版本的 Vista 和 Windows 7,修改處的文件偏移地址(即 0x8B 字節(jié)的位置)分別如下:
接下來測(cè)試加載修改后的內(nèi)核。首先需要為修改后的內(nèi)核重新計(jì)算 checksum 和生成數(shù)字簽名。在命令行中輸入下面3個(gè)命令:
editbin /release ntkr128g.exe
makecert -r -ss my -n "CN=My Own Testing Authority"
signtool sign -s my -n "My Own Testing Authority" ntkr128g.exeendprint
上述簽名過程需要用到三個(gè)命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個(gè)工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個(gè)工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網(wǎng)站免費(fèi)下載。
最后在系統(tǒng)啟動(dòng)菜單中加入一條新的啟動(dòng)菜單項(xiàng)(需以管理員方式運(yùn)行命令提示符)
bcdedit /copy {current} /d "Windows 7 With More Than 4GB"
運(yùn)行成功后,該命令會(huì)返回一個(gè) GUID 值,記錄下該 GUID 值,并運(yùn)行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號(hào)也要輸入:
bcdedit /set {guid} paeForceEnable
bcdedit /set {guid} kernel ntkr128g.exe
bcdedit /set {guid} testsigning on
最后,重啟系統(tǒng)并在啟動(dòng)菜單中選擇 "Windows 7 With More Than 4GB" 一項(xiàng)即可。由于修改了內(nèi)核,系統(tǒng)啟動(dòng)后桌面上會(huì)顯示“Test Mode”的提示。
3 衍生問題
不過,這個(gè)方法也有限制,一些不規(guī)范的驅(qū)動(dòng)程序不能支持大于4G的內(nèi)存,會(huì)導(dǎo)致系統(tǒng)崩潰。不過這些主要是一些使用大容量緩存的設(shè)備驅(qū)動(dòng),例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經(jīng)過測(cè)試,在開啟cpu的集成核心顯卡與獨(dú)立顯卡交火時(shí),就很容易藍(lán)屏,當(dāng)把核心顯卡屏蔽時(shí)穩(wěn)定性就大為提高,基本杜絕了藍(lán)屏,甚至不同品牌內(nèi)存條的混用也經(jīng)常成功。而目前需要同時(shí)雙顯卡交火應(yīng)用的程序很少,在實(shí)驗(yàn)室用于教學(xué)的軟件就更不需要,況且獨(dú)立顯卡的性能就已經(jīng)很強(qiáng)大了,萬一損壞了也很容易更換。
4 總結(jié)
對(duì)于單個(gè)任務(wù),大容量?jī)?nèi)存的應(yīng)用意義不大,因?yàn)橛脩舫绦虻娜蝿?wù)是向操作系統(tǒng)申請(qǐng)內(nèi)存的,操作系統(tǒng)總要設(shè)定一個(gè)可以分配的最大值[4],但是還是能支持64位編程定義的數(shù)據(jù)類型,保證其在分配內(nèi)存時(shí)地址是連續(xù)不被截?cái)嗟腫1]。對(duì)于內(nèi)存讀寫速度的提升也是沒有幫助的,因?yàn)樗俣仁芟抻趦?nèi)存顆粒設(shè)計(jì)時(shí)鎖定的頻率,且受到主板芯片的影響。但是大容量?jī)?nèi)存對(duì)于操作系統(tǒng)多任務(wù)性能的提升卻是很明顯的,在上程序設(shè)計(jì)課、操作系統(tǒng)或者數(shù)據(jù)庫等課程時(shí),最多的應(yīng)用就是IDE如Visual Studio和Eclipse、虛擬機(jī)、sqlServer等數(shù)據(jù)庫,這些都是內(nèi)存消耗的大戶[2]。從實(shí)際測(cè)試情況看,這些應(yīng)用開啟多個(gè)實(shí)例任務(wù)時(shí),四核CPU加上4GB內(nèi)存還是夠用的,不會(huì)發(fā)生死機(jī)的現(xiàn)象,但是任務(wù)間的切換就不那么流暢了,因?yàn)榍袚Q的過程中還是會(huì)涉及到讀寫硬盤的緩存,主流硬盤又是機(jī)械硬盤,隨著使用次數(shù)的最多,性能必然會(huì)有損耗。
安裝8GB內(nèi)存條完畢后,打開任務(wù)管理器,可以看到8GB物理內(nèi)存:
8G內(nèi)存使用后,應(yīng)該會(huì)減少磁盤緩存的讀寫次數(shù)。先來看看內(nèi)存資源使用情況:
此時(shí)我們開啟了2個(gè)IDE,1個(gè)瀏覽器,2個(gè)通訊軟件,Windows Live Writer,還有若干小應(yīng)用程序。已經(jīng)使用的內(nèi)存4012M,看來4G內(nèi)存確實(shí)是不夠用的。為什么以前不覺得4G不夠呢?因?yàn)橐郧伴_啟了這么多程序,頁面文件的使用會(huì)明顯增加,而現(xiàn)在頁面文件的使用量查得為147M:
所以物理內(nèi)存占用更多了。這樣帶來的直接好處就是程序響應(yīng)更快。即使開啟了多個(gè)大內(nèi)存任務(wù),其使用依然流程,跟僅開啟一個(gè)這樣的任務(wù)時(shí)沒有什么區(qū)別?,F(xiàn)在使用多個(gè)IDE,瞬間切換,立即使用,不會(huì)有任何延遲。
我們?cè)俨榭匆幌聝?nèi)存資源分配圖,其中Standby的內(nèi)存為3869M。Standby的內(nèi)存其實(shí)就是原來的磁盤緩存數(shù)據(jù)。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個(gè)感受最直觀的應(yīng)該是在游戲中,切換場(chǎng)景的速度明顯加快,磁盤讀取明顯減少,不用長(zhǎng)時(shí)間等待了。
根據(jù)實(shí)驗(yàn)室計(jì)算機(jī)的使用情況,常常會(huì)開機(jī)八、九個(gè)小時(shí)供多個(gè)批次的學(xué)生參加考試,安裝了大容量?jī)?nèi)存后,就可以保持內(nèi)存中的緩存數(shù)據(jù),新批次的學(xué)生來運(yùn)行考試相關(guān)的程序不用重新加載,操作快速如舊。
能夠保證持續(xù)流暢的使用體驗(yàn),是大容量?jī)?nèi)存的優(yōu)勢(shì)。4GB內(nèi)存對(duì)于運(yùn)行程序和游戲,確實(shí)是足夠的。但更多的內(nèi)存能夠提供更流暢的用戶體驗(yàn),可以使PC更像家電,速度體驗(yàn)始終如一。8GB內(nèi)存是個(gè)新的起點(diǎn),畢竟只夠提供4G緩存,16G或更多內(nèi)存也會(huì)有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。
同時(shí),我們將大容量?jī)?nèi)存模式配置成可選擇的,若對(duì)程序或設(shè)備的穩(wěn)定性有特殊的要求,開機(jī)時(shí)任課教師或?qū)W生可以在bootLoader選擇進(jìn)入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內(nèi)的RAM。
參考文獻(xiàn):
[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺(tái)的64位應(yīng)用程序微處理機(jī)[J].微處理機(jī),2008,29(6):136-142.
[2] 張成,高楊.32位Windows下Oracle使用大內(nèi)存的方法 科技視界[J].科技視界,2012,(25):188-189.
[3] MICROSOFT.inc TechNet技術(shù)資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.
[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內(nèi)存分頁機(jī)制國外電子測(cè)量技術(shù)[J]. 國外電子測(cè)量技術(shù),2008,27(6):35-38.endprint
上述簽名過程需要用到三個(gè)命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個(gè)工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個(gè)工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網(wǎng)站免費(fèi)下載。
最后在系統(tǒng)啟動(dòng)菜單中加入一條新的啟動(dòng)菜單項(xiàng)(需以管理員方式運(yùn)行命令提示符)
bcdedit /copy {current} /d "Windows 7 With More Than 4GB"
運(yùn)行成功后,該命令會(huì)返回一個(gè) GUID 值,記錄下該 GUID 值,并運(yùn)行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號(hào)也要輸入:
bcdedit /set {guid} paeForceEnable
bcdedit /set {guid} kernel ntkr128g.exe
bcdedit /set {guid} testsigning on
最后,重啟系統(tǒng)并在啟動(dòng)菜單中選擇 "Windows 7 With More Than 4GB" 一項(xiàng)即可。由于修改了內(nèi)核,系統(tǒng)啟動(dòng)后桌面上會(huì)顯示“Test Mode”的提示。
3 衍生問題
不過,這個(gè)方法也有限制,一些不規(guī)范的驅(qū)動(dòng)程序不能支持大于4G的內(nèi)存,會(huì)導(dǎo)致系統(tǒng)崩潰。不過這些主要是一些使用大容量緩存的設(shè)備驅(qū)動(dòng),例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經(jīng)過測(cè)試,在開啟cpu的集成核心顯卡與獨(dú)立顯卡交火時(shí),就很容易藍(lán)屏,當(dāng)把核心顯卡屏蔽時(shí)穩(wěn)定性就大為提高,基本杜絕了藍(lán)屏,甚至不同品牌內(nèi)存條的混用也經(jīng)常成功。而目前需要同時(shí)雙顯卡交火應(yīng)用的程序很少,在實(shí)驗(yàn)室用于教學(xué)的軟件就更不需要,況且獨(dú)立顯卡的性能就已經(jīng)很強(qiáng)大了,萬一損壞了也很容易更換。
4 總結(jié)
對(duì)于單個(gè)任務(wù),大容量?jī)?nèi)存的應(yīng)用意義不大,因?yàn)橛脩舫绦虻娜蝿?wù)是向操作系統(tǒng)申請(qǐng)內(nèi)存的,操作系統(tǒng)總要設(shè)定一個(gè)可以分配的最大值[4],但是還是能支持64位編程定義的數(shù)據(jù)類型,保證其在分配內(nèi)存時(shí)地址是連續(xù)不被截?cái)嗟腫1]。對(duì)于內(nèi)存讀寫速度的提升也是沒有幫助的,因?yàn)樗俣仁芟抻趦?nèi)存顆粒設(shè)計(jì)時(shí)鎖定的頻率,且受到主板芯片的影響。但是大容量?jī)?nèi)存對(duì)于操作系統(tǒng)多任務(wù)性能的提升卻是很明顯的,在上程序設(shè)計(jì)課、操作系統(tǒng)或者數(shù)據(jù)庫等課程時(shí),最多的應(yīng)用就是IDE如Visual Studio和Eclipse、虛擬機(jī)、sqlServer等數(shù)據(jù)庫,這些都是內(nèi)存消耗的大戶[2]。從實(shí)際測(cè)試情況看,這些應(yīng)用開啟多個(gè)實(shí)例任務(wù)時(shí),四核CPU加上4GB內(nèi)存還是夠用的,不會(huì)發(fā)生死機(jī)的現(xiàn)象,但是任務(wù)間的切換就不那么流暢了,因?yàn)榍袚Q的過程中還是會(huì)涉及到讀寫硬盤的緩存,主流硬盤又是機(jī)械硬盤,隨著使用次數(shù)的最多,性能必然會(huì)有損耗。
安裝8GB內(nèi)存條完畢后,打開任務(wù)管理器,可以看到8GB物理內(nèi)存:
8G內(nèi)存使用后,應(yīng)該會(huì)減少磁盤緩存的讀寫次數(shù)。先來看看內(nèi)存資源使用情況:
此時(shí)我們開啟了2個(gè)IDE,1個(gè)瀏覽器,2個(gè)通訊軟件,Windows Live Writer,還有若干小應(yīng)用程序。已經(jīng)使用的內(nèi)存4012M,看來4G內(nèi)存確實(shí)是不夠用的。為什么以前不覺得4G不夠呢?因?yàn)橐郧伴_啟了這么多程序,頁面文件的使用會(huì)明顯增加,而現(xiàn)在頁面文件的使用量查得為147M:
所以物理內(nèi)存占用更多了。這樣帶來的直接好處就是程序響應(yīng)更快。即使開啟了多個(gè)大內(nèi)存任務(wù),其使用依然流程,跟僅開啟一個(gè)這樣的任務(wù)時(shí)沒有什么區(qū)別。現(xiàn)在使用多個(gè)IDE,瞬間切換,立即使用,不會(huì)有任何延遲。
我們?cè)俨榭匆幌聝?nèi)存資源分配圖,其中Standby的內(nèi)存為3869M。Standby的內(nèi)存其實(shí)就是原來的磁盤緩存數(shù)據(jù)。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個(gè)感受最直觀的應(yīng)該是在游戲中,切換場(chǎng)景的速度明顯加快,磁盤讀取明顯減少,不用長(zhǎng)時(shí)間等待了。
根據(jù)實(shí)驗(yàn)室計(jì)算機(jī)的使用情況,常常會(huì)開機(jī)八、九個(gè)小時(shí)供多個(gè)批次的學(xué)生參加考試,安裝了大容量?jī)?nèi)存后,就可以保持內(nèi)存中的緩存數(shù)據(jù),新批次的學(xué)生來運(yùn)行考試相關(guān)的程序不用重新加載,操作快速如舊。
能夠保證持續(xù)流暢的使用體驗(yàn),是大容量?jī)?nèi)存的優(yōu)勢(shì)。4GB內(nèi)存對(duì)于運(yùn)行程序和游戲,確實(shí)是足夠的。但更多的內(nèi)存能夠提供更流暢的用戶體驗(yàn),可以使PC更像家電,速度體驗(yàn)始終如一。8GB內(nèi)存是個(gè)新的起點(diǎn),畢竟只夠提供4G緩存,16G或更多內(nèi)存也會(huì)有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。
同時(shí),我們將大容量?jī)?nèi)存模式配置成可選擇的,若對(duì)程序或設(shè)備的穩(wěn)定性有特殊的要求,開機(jī)時(shí)任課教師或?qū)W生可以在bootLoader選擇進(jìn)入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內(nèi)的RAM。
參考文獻(xiàn):
[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺(tái)的64位應(yīng)用程序微處理機(jī)[J].微處理機(jī),2008,29(6):136-142.
[2] 張成,高楊.32位Windows下Oracle使用大內(nèi)存的方法 科技視界[J].科技視界,2012,(25):188-189.
[3] MICROSOFT.inc TechNet技術(shù)資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.
[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內(nèi)存分頁機(jī)制國外電子測(cè)量技術(shù)[J]. 國外電子測(cè)量技術(shù),2008,27(6):35-38.endprint
上述簽名過程需要用到三個(gè)命令行工具,其中 editbin 在 Visual Studio 中自帶,而 makecert 和 signtool 在 Windows SDK 6.0 中自帶,我們安裝了 Visual Studio 2008,第一個(gè)工具可以在 %VS2008_Dir%\ VC\ Bin\ 中找到,后兩個(gè)工具可以在 %ProgramFiles%\ Microsoft SDKs\ Windows\ v6.0A\ bin\ 中找到。Visual Studio 2008 Express 和 Windows SDK 6.0 都可以從微軟網(wǎng)站免費(fèi)下載。
最后在系統(tǒng)啟動(dòng)菜單中加入一條新的啟動(dòng)菜單項(xiàng)(需以管理員方式運(yùn)行命令提示符)
bcdedit /copy {current} /d "Windows 7 With More Than 4GB"
運(yùn)行成功后,該命令會(huì)返回一個(gè) GUID 值,記錄下該 GUID 值,并運(yùn)行下面三條,用之前返回的 GUID 值替換命令中的 guid,而且命令中包含 guid 的大括號(hào)也要輸入:
bcdedit /set {guid} paeForceEnable
bcdedit /set {guid} kernel ntkr128g.exe
bcdedit /set {guid} testsigning on
最后,重啟系統(tǒng)并在啟動(dòng)菜單中選擇 "Windows 7 With More Than 4GB" 一項(xiàng)即可。由于修改了內(nèi)核,系統(tǒng)啟動(dòng)后桌面上會(huì)顯示“Test Mode”的提示。
3 衍生問題
不過,這個(gè)方法也有限制,一些不規(guī)范的驅(qū)動(dòng)程序不能支持大于4G的內(nèi)存,會(huì)導(dǎo)致系統(tǒng)崩潰。不過這些主要是一些使用大容量緩存的設(shè)備驅(qū)動(dòng),例如集成顯卡或者視頻采集卡,他們的緩存都常常超過1GB了,經(jīng)過測(cè)試,在開啟cpu的集成核心顯卡與獨(dú)立顯卡交火時(shí),就很容易藍(lán)屏,當(dāng)把核心顯卡屏蔽時(shí)穩(wěn)定性就大為提高,基本杜絕了藍(lán)屏,甚至不同品牌內(nèi)存條的混用也經(jīng)常成功。而目前需要同時(shí)雙顯卡交火應(yīng)用的程序很少,在實(shí)驗(yàn)室用于教學(xué)的軟件就更不需要,況且獨(dú)立顯卡的性能就已經(jīng)很強(qiáng)大了,萬一損壞了也很容易更換。
4 總結(jié)
對(duì)于單個(gè)任務(wù),大容量?jī)?nèi)存的應(yīng)用意義不大,因?yàn)橛脩舫绦虻娜蝿?wù)是向操作系統(tǒng)申請(qǐng)內(nèi)存的,操作系統(tǒng)總要設(shè)定一個(gè)可以分配的最大值[4],但是還是能支持64位編程定義的數(shù)據(jù)類型,保證其在分配內(nèi)存時(shí)地址是連續(xù)不被截?cái)嗟腫1]。對(duì)于內(nèi)存讀寫速度的提升也是沒有幫助的,因?yàn)樗俣仁芟抻趦?nèi)存顆粒設(shè)計(jì)時(shí)鎖定的頻率,且受到主板芯片的影響。但是大容量?jī)?nèi)存對(duì)于操作系統(tǒng)多任務(wù)性能的提升卻是很明顯的,在上程序設(shè)計(jì)課、操作系統(tǒng)或者數(shù)據(jù)庫等課程時(shí),最多的應(yīng)用就是IDE如Visual Studio和Eclipse、虛擬機(jī)、sqlServer等數(shù)據(jù)庫,這些都是內(nèi)存消耗的大戶[2]。從實(shí)際測(cè)試情況看,這些應(yīng)用開啟多個(gè)實(shí)例任務(wù)時(shí),四核CPU加上4GB內(nèi)存還是夠用的,不會(huì)發(fā)生死機(jī)的現(xiàn)象,但是任務(wù)間的切換就不那么流暢了,因?yàn)榍袚Q的過程中還是會(huì)涉及到讀寫硬盤的緩存,主流硬盤又是機(jī)械硬盤,隨著使用次數(shù)的最多,性能必然會(huì)有損耗。
安裝8GB內(nèi)存條完畢后,打開任務(wù)管理器,可以看到8GB物理內(nèi)存:
8G內(nèi)存使用后,應(yīng)該會(huì)減少磁盤緩存的讀寫次數(shù)。先來看看內(nèi)存資源使用情況:
此時(shí)我們開啟了2個(gè)IDE,1個(gè)瀏覽器,2個(gè)通訊軟件,Windows Live Writer,還有若干小應(yīng)用程序。已經(jīng)使用的內(nèi)存4012M,看來4G內(nèi)存確實(shí)是不夠用的。為什么以前不覺得4G不夠呢?因?yàn)橐郧伴_啟了這么多程序,頁面文件的使用會(huì)明顯增加,而現(xiàn)在頁面文件的使用量查得為147M:
所以物理內(nèi)存占用更多了。這樣帶來的直接好處就是程序響應(yīng)更快。即使開啟了多個(gè)大內(nèi)存任務(wù),其使用依然流程,跟僅開啟一個(gè)這樣的任務(wù)時(shí)沒有什么區(qū)別。現(xiàn)在使用多個(gè)IDE,瞬間切換,立即使用,不會(huì)有任何延遲。
我們?cè)俨榭匆幌聝?nèi)存資源分配圖,其中Standby的內(nèi)存為3869M。Standby的內(nèi)存其實(shí)就是原來的磁盤緩存數(shù)據(jù)。接近4G的磁盤緩存,保證了我常用的磁盤文件能以最快的速度讀寫。這個(gè)感受最直觀的應(yīng)該是在游戲中,切換場(chǎng)景的速度明顯加快,磁盤讀取明顯減少,不用長(zhǎng)時(shí)間等待了。
根據(jù)實(shí)驗(yàn)室計(jì)算機(jī)的使用情況,常常會(huì)開機(jī)八、九個(gè)小時(shí)供多個(gè)批次的學(xué)生參加考試,安裝了大容量?jī)?nèi)存后,就可以保持內(nèi)存中的緩存數(shù)據(jù),新批次的學(xué)生來運(yùn)行考試相關(guān)的程序不用重新加載,操作快速如舊。
能夠保證持續(xù)流暢的使用體驗(yàn),是大容量?jī)?nèi)存的優(yōu)勢(shì)。4GB內(nèi)存對(duì)于運(yùn)行程序和游戲,確實(shí)是足夠的。但更多的內(nèi)存能夠提供更流暢的用戶體驗(yàn),可以使PC更像家電,速度體驗(yàn)始終如一。8GB內(nèi)存是個(gè)新的起點(diǎn),畢竟只夠提供4G緩存,16G或更多內(nèi)存也會(huì)有明顯效果。配合寫緩存和休眠模式,PC的性能可以不再受限于硬盤。
同時(shí),我們將大容量?jī)?nèi)存模式配置成可選擇的,若對(duì)程序或設(shè)備的穩(wěn)定性有特殊的要求,開機(jī)時(shí)任課教師或?qū)W生可以在bootLoader選擇進(jìn)入普通模式,這樣就和一般的32位win7安裝版無異,只能使用4GB以內(nèi)的RAM。
參考文獻(xiàn):
[1] 陳樂,張延園,樊龍.開發(fā)和部署基于windows平臺(tái)的64位應(yīng)用程序微處理機(jī)[J].微處理機(jī),2008,29(6):136-142.
[2] 張成,高楊.32位Windows下Oracle使用大內(nèi)存的方法 科技視界[J].科技視界,2012,(25):188-189.
[3] MICROSOFT.inc TechNet技術(shù)資源庫[EB/OL]http://technet.microsoft.com/zh-cn/library/dn482072.aspx.
[4] 韓敬偉,李樹彪.淺析WINDOWS環(huán)境下的內(nèi)存分頁機(jī)制國外電子測(cè)量技術(shù)[J]. 國外電子測(cè)量技術(shù),2008,27(6):35-38.endprint