????
?目錄
0x00 響應時間和吞吐量(Response Time and Throughput)
0x01 相對性能(Relative Performance)
0x02?執(zhí)行時間測量(Measuring Execution Time)
0x03?CPU 時鐘(Clocking)
0x04 CPU時間
0x05 指令計數(shù)和 CPI
0x06 性能摘要(Performance Summary)
0x00 響應時間和吞吐量(Response Time and Throughput)
響應時間 (Response time):完成任務所需的時間
吞吐量 (Throughput):每個單位時間內(nèi)完成的總工作量 (比如: tasks/transactions...?per hours)
存在多種因素可以對響應時間和吞吐量造成影響,包括但不限于:
- 處理能力:通過升級到更快的處理器或添加更多處理器,可以減少響應時間并增加吞吐量。這是因為更快或更強大的處理器可以在更短的時間內(nèi)處理更多的任務。
- 系統(tǒng)負載:如果系統(tǒng)過載,處理過多的任務或用戶,將會對響應時間和吞吐量產(chǎn)生負面影響。這是因為系統(tǒng)可能無法處理工作負荷,導致響應時間更長,吞吐量降低。
- 網(wǎng)絡延遲:如果網(wǎng)絡延遲較高,響應時間和吞吐量可能會受到影響。這是因為數(shù)據(jù)傳輸需要更長的時間,從而導致響應時間變長和吞吐量降低。
換更快的處理器?添加更多的處理器?本章我們更關注的是 響應時間 (Response time) 。
0x01 相對性能(Relative Performance)
?? 定義:性能 =??1 / 執(zhí)行時間:
?
?比 ?快 ?倍:
?? 舉個例子:運行程序所需時間,在 ?機器上為 10s,在 ?機器上為 15s?
因此,?比 ?快 1.5 倍。
0x02?執(zhí)行時間測量(Measuring Execution Time)
執(zhí)行時間測量 (Measuring Execution Time) 指的是在計算機程序中測量代碼執(zhí)行所需的時間。這通常是通過在代碼開始和結(jié)束時記錄時間戳來實現(xiàn)的,然后計算時間戳之間的差異來計算程序執(zhí)行所需的時間。
執(zhí)行時間測量通常是性能優(yōu)化和調(diào)試代碼的重要工具。通過測量程序中不同部分的執(zhí)行時間,開發(fā)人員可以確定哪些部分需要進行優(yōu)化,以使程序更加高效。
在實際應用中,執(zhí)行時間測量可以使用多種不同的技術和工具來實現(xiàn),例如內(nèi)置的計時器函數(shù)、性能分析工具、代碼覆蓋率工具等等。不同的方法適用于不同的場景和需求。
總的反應時間 (Elapsed time):
- 總響應時間,包括所有方面 (Processing, I/O, OS overhead, idle time)
- 確定系統(tǒng)性能
CPU 時間 (CPU time):
- 用于處理給定作業(yè)的時間 (Discounts I/O time, other jobs’ shares)?
- 包括用戶 CPU 時間和系統(tǒng) CPU 時間
- 不同的程序受 CPU 和系統(tǒng)性能的影響不同
0x03?CPU 時鐘(Clocking)
CPU Clocking(CPU 時鐘)指的是計算機 CPU 內(nèi)部的時鐘系統(tǒng)。這個時鐘系統(tǒng)會以固定的速率來發(fā)出脈沖信號,這些信號會讓 CPU 的不同部件在每個時鐘周期內(nèi)執(zhí)行相應的操作。
數(shù)字硬件的操作受到固定速率時鐘的控制:
時鐘周期 (Clock period):時鐘信號一個完整的循環(huán)所需要的時間。
時鐘頻率?(Clock Rate):每秒鐘時鐘信號產(chǎn)生的周期數(shù)。
0x04 計算CPU時間(T=CC/CR)
性能可以通過減少時鐘周期數(shù)、增加時鐘速度來改善。
硬件設計人員通常需要在時鐘速度和時鐘周期數(shù)量之間進行權(quán)衡。
?? CPU Time 計算公式如下:
CPU 時間 = CPU 時鐘周期數(shù) ×?時鐘周期
? ? ? ? ? ? ? ? ?=?CPU 時鐘周期數(shù) ÷?時鐘頻率
?? 簡化記憶:
- 求 CPU 時間:?,?
- 求時鐘頻率 (Clock?Rate) :
- 求時鐘周期 (Clock Cycle) :
?? 舉個例子:
計算機 A 有 2GHz 的時鐘, 10s 的CPU 時間,請設計計算機 B,目標達到?10s 的 CPU 時間??梢允褂酶斓臅r鐘,但會導致 1.2 × 時鐘周期,問計算機 B 的時鐘應該多快?
?? 解答:已知?,計算?
* 根據(jù)上述公式?,那么?,
根據(jù)題意,使用更快時鐘導致??倍?,并且目標 CPU 時間??為?,可列出公式:
此時我們需要計算 A 的時鐘周期,根據(jù)公式?,那么時鐘周期?:
此時我們已經(jīng)得到了?,帶入即可計算出?:
0x05 指令計數(shù) IC 和 每條指令所需的時鐘周期數(shù) CPI
?(Instruction Count),指的是 指令計數(shù)。
?(Cycle Per Instrution),指的是?每條指令所需的時鐘周期數(shù)。即 平均執(zhí)行周期數(shù)
是指在一個程序中,每個時鐘周期所執(zhí)行的平均指令數(shù)。這兩個概念都是計算機性能評估中的關鍵指標。通過減少指令計數(shù)或降低 CPI,可以提高計算機系統(tǒng)的性能。
??? 簡化記憶:
Execution time = (Instruction count * CPI) / Clock rate
程序的指令計數(shù)是由程序本身、指令集架構(gòu) (ISA) 和編譯器所決定的。每個指令的平均時鐘周期數(shù)取決于CPU硬件。如果不同的指令具有不同的CPI,則平均 CPI 受指令組合的影響。
?? CPI 計算例子:
計算機 A?的周期時間 = 250ps,CPI = 2.0,計算機 B 的周期時間 為 500ps,CPI = 1.2
ISA 相同,哪臺計算機更快?快多少?
?? 題解:根據(jù)題意得知:,
既然要比誰更快,那么我們分別計算出 A, B 的 CPU Time:
,因此 A 速度更快。
下面計算快多少:
0x06 關于CPI 的更多細節(jié)
如果不同的指令類別需要不同的時鐘周期數(shù):
?
?加權(quán)平均 CPI (Avg):
?? 例子:Alternative compiled code sequences using instructions in classes A, B, C:
?? 解讀:Sequence 1 中??
根據(jù)公式:
再根據(jù)圖表給出的 IC, CPI 即可計算出 Clock Cycles:
然后通過公式計算平均:
?
0x07?性能摘要(Performance Summary)
性能摘要 (Performance Summary) 是指對計算機系統(tǒng)、軟件或應用程序性能進行評估、分析和總結(jié)的過程。在性能摘要中,可以考慮多種性能指標,如執(zhí)行時間、吞吐量、響應時間、負載等。通常,性能摘要的目的是發(fā)現(xiàn)瓶頸、評估系統(tǒng)的優(yōu)化潛力、指導系統(tǒng)設計和優(yōu)化、以及進行比較評估等。在實踐中,性能摘要是計算機系統(tǒng)開發(fā)和維護中非常重要的一環(huán),可以幫助提高系統(tǒng)的性能、可靠性和穩(wěn)定性。
性能取決于 算法 (影響 IC,可能影響 CPI)、編程語言 (影響 IC,CPI)、編譯器(影響 IC,CPI)、指令集架構(gòu)(影響 IC,CPI,Tc)。
?? 計算公式總結(jié):?
?? [ 筆者 ]? ?王亦優(yōu)
?? [ 更新 ]? ?2022.3.
? [ 勘誤 ]?? /* 暫無 */
?? [ 聲明 ]? ?由于作者水平有限,本文有錯誤和不準確之處在所難免,
本人也很想知道這些錯誤,懇望讀者批評指正!
?? 參考資料? C++reference[EB/OL]. []. http://www.cplusplus.com/reference/. Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .文章來源:http://www.zghlxwxcb.cn/news/detail-402824.html 百度百科[EB/OL]. []. https://baike.baidu.com/.文章來源地址http://www.zghlxwxcb.cn/news/detail-402824.html |
到了這里,關于【計算機架構(gòu)】如何計算 CPU 時間的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!