最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

自編教材分享:第八章—訪存優(yōu)化(一)

2023-11-01 15:02 作者:先進編譯實驗室  | 我要投稿


為了平衡成本、保持存儲容量及訪存速度,現(xiàn)代計算機的存儲系統(tǒng)中一般采用多種不同的存儲器件結(jié)合即多級層次存儲結(jié)構(gòu)。如下圖所示,最上層的寄存器在處理器芯片內(nèi)直接參與運算,它的速度最快、平均每位的價格最高、容量最小。高速緩存存儲器、主存儲器、輔助存儲器這三個級別的存儲容量依次增大,但存儲速度、價格成本及處理器訪問的頻度依次降低。

寄存器分配

減少全局變量

全局變量的有效范圍在整個程序內(nèi),且全局變量會獨占一個寄存器,導(dǎo)致過程內(nèi)可分配寄存器的數(shù)量減少,因此編碼時應(yīng)盡量減少全局變量的使用。

初始代碼:

優(yōu)化后代碼:

直接讀取寄存器

一般情況下,編譯時主要對標(biāo)量進行分配寄存器,因此在編寫程序時應(yīng)該盡量將數(shù)組變?yōu)闃?biāo)量,這樣可以直接讀取寄存器中的數(shù)據(jù),從而避免每次都從緩存中加載數(shù)據(jù),減少部分程序中數(shù)據(jù)讀寫耗費的時間。對優(yōu)化前后示例進行測試,結(jié)果顯示,標(biāo)量替換前耗時0.96秒,替換優(yōu)化后耗時0.88秒。

原始代碼:

優(yōu)化后代碼:

除此之外,此方法還可以減少內(nèi)存寫的次數(shù)。對代碼進行測試,設(shè)置輸入的數(shù)據(jù)規(guī)模為10000*10000,結(jié)果顯示優(yōu)化前耗時0.35s,優(yōu)化后耗時0.28s,可見對內(nèi)存寫操作的減少會提升程序的性能。

原始代碼:

優(yōu)化后代碼:

優(yōu)化人員除了需要考慮寄存器合理分配的問題之外,還需要防止寄存器溢出。當(dāng)所需寄存器的數(shù)量大于可分配寄存器數(shù)量時,就會出現(xiàn)寄存器溢出,可能會抵消前期調(diào)優(yōu)積累的性能優(yōu)勢。

原始代碼:

匯編代碼:

寄存器重用

當(dāng)數(shù)據(jù)從緩存加載到寄存器后,應(yīng)該盡可能地將后續(xù)還要使用的數(shù)據(jù)保留在寄存器,以避免該數(shù)據(jù)再次從緩存讀取,即寄存器重用可以有效地減少內(nèi)存訪問。

原始代碼:

優(yōu)化后代碼:


自編教材分享:第八章—訪存優(yōu)化(一)的評論 (共 條)

分享到微博請遵守國家法律
漳州市| 柳林县| 阜南县| 揭东县| 永吉县| 边坝县| 德兴市| 乐业县| 鄂托克旗| 肇东市| 郴州市| 汝阳县| 永宁县| 柳林县| 绵竹市| 象山县| 博野县| 郓城县| 德格县| 萨迦县| 固始县| 肃宁县| 汤原县| 西乌珠穆沁旗| 屏东市| 惠州市| 忻州市| 手游| 措勤县| 波密县| 绩溪县| 吉木萨尔县| 罗田县| 京山县| 朔州市| 肇州县| 苏尼特左旗| 灵石县| 金华市| 镇原县| 盐城市|