CPU優(yōu)化方法介紹
CPU優(yōu)化方法介紹
應(yīng)用程序優(yōu)化從應(yīng)用程序的角度來說,降低CPU使用率的最好方法當(dāng)然是,排除所有不必要的工作,只保留最核心的邏輯比如減少循環(huán)的層次、減少遞歸、小編帶來的CPU優(yōu)化方法介紹。
一、在BIOS中優(yōu)化CPU
1、打開CPU二級緩存
對于一些特殊主板,CPU的某些功能在默認(rèn)的情況下是不開啟的,需要在BIOS中將其打開,如CPU的.內(nèi)部高速緩存和超線程技術(shù)等。打開CPU的內(nèi)部高速緩存的方法如下:
步驟1 進(jìn)入BIOS設(shè)置主界面,選擇“Advanced BIOS Features”設(shè)置項(xiàng),按Enter鍵進(jìn)入。
步驟2 將“CPU Internal Cache”設(shè)置為“Enabled”,即打開CPU的二級緩存。打開后可以減少CPU在存儲(chǔ)器讀/寫周期中的等待時(shí)間,從而提升CPU的工作效率。
步驟3 CPU二級緩存ECC校驗(yàn)也是一個(gè)很重要的參數(shù)。將“CPU L2 Cache ECC Checking”設(shè)置為“Enabled”,可啟用CPU內(nèi)部L2Cache,進(jìn)行ECC檢測。它可以偵察并糾正單位信號錯(cuò)誤,保持資料的準(zhǔn)確性,對超頻的穩(wěn)定性有幫助,但不能偵察雙位信號錯(cuò)誤。
2、設(shè)置超線程技術(shù)
超線程技術(shù)回增強(qiáng)處理器的性能,提高工作效率。因此,對于一些支持超線程技術(shù)的CPU(如P42.8C等),可以對其進(jìn)行如下設(shè)置:
步驟1 進(jìn)入主板BIOS中,在“Advanced BIOS Features”中找到“
Hyper-Threading Technology”選項(xiàng)。
步驟2 將其設(shè)置為“Enabled”。
步驟3 設(shè)置完畢后重啟電腦,然后在開機(jī)自檢畫面時(shí)會(huì)顯示兩個(gè)處理器。當(dāng)用戶進(jìn)入系統(tǒng)后還可以在系統(tǒng)的“設(shè)備管理器”里面看到兩個(gè)處理器,這就代表超線程技術(shù)已經(jīng)成功打開。
二、系統(tǒng)設(shè)置優(yōu)化CPU
調(diào)整程序優(yōu)先級
在Windows系統(tǒng)中,對CPU的優(yōu)化處理并不多,可以通過設(shè)置CPU優(yōu)先等級的方法來優(yōu)化CPU。Windows 2000/XP內(nèi)的應(yīng)用程序共分為32個(gè)等級(0~31),一般都處于0~15級之間。默認(rèn)情況下,程序的優(yōu)先級別都為8,即“標(biāo)準(zhǔn)”。在有些時(shí)候,可以將一些無關(guān)緊要的進(jìn)程的優(yōu)先級調(diào)低,這樣可以提升CPU的性能。
要設(shè)置CPU的優(yōu)先級,可以執(zhí)行以下操作:
步驟1 按Ctrl+Alt+Del組合鍵,打開“Windows任務(wù)管理器”窗口。
CPU優(yōu)化方法介紹
指令重排的場景:當(dāng)cpu的寫緩存時(shí)候發(fā)現(xiàn)緩存區(qū)域正在被其他cpu占用,為了提高cpu的性能,可能會(huì)將后面的都緩存指令優(yōu)先執(zhí)行
并非隨便重排:需要遵循as-if -serial語義
as-if -serial語義是指: 不管怎么重排序,程序的執(zhí)行結(jié)果不會(huì)被改變,編譯器和處理器都會(huì)遵循這個(gè)語義
也就是說,編譯器和處理器不會(huì)對數(shù)據(jù)存在對的依賴關(guān)系的操作做重排序
存在問題:
1 cpu高速緩存下問題:
緩存中的數(shù)據(jù)與主內(nèi)存的數(shù)據(jù)并不是實(shí)時(shí)同步的,各個(gè)cpu間的緩存數(shù)據(jù)也不是實(shí)時(shí)同步,各個(gè)cpu所看到的同一內(nèi)存數(shù)據(jù)可能不一致
2 指令重排:
雖然遵循的as-if -serial 語義 僅僅在單個(gè)cpu自己執(zhí)行的情況下保證結(jié)果正確
多核多線程 中,指令邏輯無法分辨因果關(guān)聯(lián) 可能會(huì)出現(xiàn)程序亂執(zhí)行,導(dǎo)致程序運(yùn)行結(jié)果錯(cuò)誤
解決方法: cpu提高內(nèi)存屏障
1、 寫內(nèi)存屏障: 在指令后插入store barrier,能讓寫入緩存的最新數(shù)據(jù)更新寫入主內(nèi)存,讓其他線程可見
強(qiáng)制寫入主內(nèi)存,這個(gè)現(xiàn)實(shí)調(diào)用,cpu就不會(huì)因?yàn)樾阅軉栴}去對指令重排
2 、讀內(nèi)存屏障:在指令之前插入load barrier 可以讓緩存緩存中的數(shù)據(jù)實(shí)現(xiàn),強(qiáng)制從新主內(nèi)存加載數(shù)據(jù)
強(qiáng)制讀取主內(nèi)存內(nèi)容,讓cpu緩存保持與之內(nèi)存保持一致,避免了緩存導(dǎo)致的一致性問題
步驟2 選中要設(shè)置優(yōu)先級的程序,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“設(shè)置優(yōu)先級”→“低”的命令,即可降低程序的級別。
3、優(yōu)化處理器二級緩存容量
在Windows XP中,為加快系統(tǒng)運(yùn)行,可以在注冊表中設(shè)置二級緩存容量。方法如下:
步驟1 首先打開注冊表,找到如下分支:“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSessionManagerMemoryManagement”。
步驟2 選擇其下的“SecondLevelDataCache”,用戶根據(jù)自己所用的處理器設(shè)置即可,例如Athlon XP是“38”,P4Northwood是“512”。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報(bào)時(shí)請帶上具體的網(wǎng)址) 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除