欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種獲取cpu利用率的方法、裝置及系統(tǒng)的制作方法

文檔序號(hào):6483670閱讀:187來(lái)源:國(guó)知局
專(zhuān)利名稱:一種獲取cpu利用率的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及移動(dòng)通信領(lǐng)域,尤其涉及一種獲取CPU利用率的方法、裝
置及系統(tǒng)。
背景技術(shù)
操作系統(tǒng)(Operating System, OS)是一管理計(jì)算機(jī)系統(tǒng)的全部資源, 包括硬件資源、軟件資源及數(shù)據(jù)資源、控制程序運(yùn)行等資源的程序,使計(jì)算 機(jī)系統(tǒng)所有資源最大限度地發(fā)揮作用。中央處理單元(Central Process Unit, CPU)的縮寫(xiě),是計(jì)算機(jī)系統(tǒng)的核心,負(fù)責(zé)處理、運(yùn)算計(jì)算機(jī)內(nèi)部的所有數(shù) 據(jù)。CPU利用率是指一段時(shí)間內(nèi)CPU實(shí)際處理數(shù)據(jù)的時(shí)間占實(shí)際運(yùn)行時(shí)間 的百分比,即是CPU的使用效率。CPU利用率是反映CPU工作狀態(tài)及處理 效率的技術(shù)經(jīng)濟(jì)指標(biāo)。在一些CPU的應(yīng)用場(chǎng)合中,有些CPU上需要運(yùn)行操 作系統(tǒng),以獲取更強(qiáng)、更多的功能,例如,通用PC,網(wǎng)絡(luò)服務(wù)器,智能手 機(jī)等。因?yàn)橛辛瞬僮飨到y(tǒng)的支持,只需通過(guò)開(kāi)發(fā)上層軟件來(lái)優(yōu)化,增加和擴(kuò) 充CPU的功能。
現(xiàn)有技術(shù)中,有一種利用進(jìn)程獲取CPU利用率的方法,該方法的實(shí)現(xiàn) 主要基于系統(tǒng)空閑(idle )進(jìn)程,所述系統(tǒng)idle進(jìn)程是在CPU空閑的時(shí)候, 發(fā)出一個(gè)idle命令,使CPU暫時(shí)停止工作,則該方法的實(shí)現(xiàn)過(guò)程具體為 在操作系統(tǒng)里創(chuàng)建一個(gè)idle進(jìn)程,當(dāng)操作系統(tǒng)處于空閑狀態(tài)時(shí),CPU就運(yùn)行 該idle進(jìn)程,然后統(tǒng)計(jì)idle進(jìn)程運(yùn)行的時(shí)間片,依據(jù)所述時(shí)間片的具體信息 就可以獲取到CPU的空閑率,進(jìn)而可以獲取CPU的利用率。
從上述過(guò)程可以看出,傳統(tǒng)的CPU利用計(jì)算方法是基于系統(tǒng)idle進(jìn)程 的,即是以idle進(jìn)程為基礎(chǔ)進(jìn)行計(jì)算,通過(guò)統(tǒng)計(jì)idle的時(shí)間利用片從而得出 CPU的利用率,因此現(xiàn)有技術(shù)的應(yīng)用場(chǎng)景需要操作系統(tǒng)的支持,即是只能應(yīng) 用于在CPU上已經(jīng)運(yùn)行操:作系統(tǒng)的場(chǎng)景中,且該梯:作系統(tǒng)支持支持線程或 者進(jìn)程;但是對(duì)于實(shí)際中一些沒(méi)有操作系統(tǒng)(或者說(shuō)是不需要操作系統(tǒng))的 CPU來(lái)講,因不存在系統(tǒng)idle進(jìn)程,現(xiàn)有技術(shù)也就無(wú)法計(jì)算出該CPU的利
5用率,使得現(xiàn)有技術(shù)中獲取CPU利用率的方法的應(yīng)用場(chǎng)景受到極大的限制。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種獲取CPU利用率的方法及裝置,以解決現(xiàn)有技
術(shù)中的方法不能應(yīng)用于沒(méi)有操作系統(tǒng)支持的應(yīng)用場(chǎng)景的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種獲取CPU利用率的方 法,包括
在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù); 依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU的利用率。
優(yōu)選的,所述在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令數(shù),具體包括 獲取一閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù); 分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),以獲得所述輪詢
指令總數(shù)和業(yè)務(wù)指令總數(shù)。
優(yōu)選的,所述獲取一閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令數(shù)和單次
業(yè)務(wù)指令數(shù),具體包括
在每次輪詢開(kāi)始時(shí),獲取所述CPU的指令計(jì)數(shù)寄存器的第 一計(jì)數(shù)值; 在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述CPU的指令計(jì)數(shù)寄存器的第二計(jì)
數(shù)值;
在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第三計(jì)數(shù)值; 在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第四計(jì)數(shù)值; 分別獲取所述第四計(jì)數(shù)值和第 一 計(jì)數(shù)值的差,以及所述第三計(jì)數(shù)值 和第二計(jì)數(shù)值的差,則所述差值分別為所述單次輪詢指令數(shù)和單次業(yè)務(wù)
指令數(shù)。
優(yōu)選的,所述CPU為多核CPU,則所述統(tǒng)計(jì)多核CPU的輪詢指令 總數(shù)和業(yè)務(wù)指令總數(shù),具體包括
獲取所述多核CPU上各核相應(yīng)的多個(gè)輪詢指令總數(shù)和業(yè)務(wù)指令總
數(shù);
分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè)務(wù)指令總數(shù),以獲得多核 CPU的輪詢指令數(shù)和業(yè)務(wù)指令數(shù)。
6優(yōu)選的,在所述多核CPU的任一核上設(shè)置定時(shí)器,所述定時(shí)器的預(yù) 置時(shí)間為所述一 閾值時(shí)間。
優(yōu)選的,所述依據(jù)所述輪詢指令數(shù)和業(yè)務(wù)指令數(shù)計(jì)算得到所述CPU
的利用率之后,還包括
將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。
本發(fā)明實(shí)施例還提供了 一種獲取CPU利用率的裝置,包括
統(tǒng)計(jì)模塊,用于在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)
指令總數(shù);
計(jì)算模塊,用于依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所 述CPU的利用率。
優(yōu)選的,所述統(tǒng)計(jì)模塊具體包括
第一獲取子模塊,用于獲取一閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令 數(shù)和單次業(yè)務(wù)指令數(shù);
第 一 累計(jì)子模塊,用于分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指 令數(shù),以獲得所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)。
優(yōu)選的,所述第一獲取子模塊具體包括
第二獲取子模塊,用于在每次輪詢開(kāi)始時(shí),獲取所述CPU的指令計(jì) 數(shù)寄存器的第一計(jì)數(shù)值;
第三獲取子模塊,用于在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述CPU的指 令計(jì)數(shù)寄存器的第二計(jì)數(shù)值;
第四獲取子模塊,用于在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì)數(shù) 寄存器的第三計(jì)數(shù)值;
第五獲取子模塊,用于在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存 器的第四計(jì)數(shù)值;
第六獲取子模塊,用于分別獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的差, 以及所述第三計(jì)數(shù)值和第二計(jì)數(shù)值的差,則所述差值分別為所述單次輪 詢指令數(shù)和單次業(yè)務(wù)指令數(shù)。
優(yōu)選的,所述統(tǒng)計(jì)模塊具體包括
第七獲取子模塊,用于獲取所述多核CPU上各核相應(yīng)的多個(gè)輪詢指 令總數(shù)和業(yè)務(wù)指令總數(shù);第二累計(jì)子模塊,用于分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè)務(wù)
指令總數(shù),以獲得多核CPU的輪詢指令數(shù)和業(yè)務(wù)指令數(shù)。 優(yōu)選的,還包括
設(shè)置模塊,用于在所述多核CPU的任一核上設(shè)置定時(shí)器,所述定時(shí) 器的預(yù)置時(shí)間為所述一 閾值時(shí)間。 優(yōu)選的,還包括
初始化模塊,用于將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)
在本發(fā)明實(shí)施例中,首先通過(guò)在一闊值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指 令總數(shù)和業(yè)務(wù)指令總數(shù);可以依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì) 算得到所述CPU的利用率。運(yùn)用本發(fā)明的方法,就使得本發(fā)明實(shí)施例對(duì) 于CPU的配置要求較低,無(wú)需操作系統(tǒng)支持,并且,進(jìn)一步的,可以通 過(guò)讀取CPU內(nèi)部的指令計(jì)數(shù)寄存器上的指來(lái)獲取輪詢指令數(shù)和業(yè)務(wù)指令 數(shù),同時(shí)不會(huì)產(chǎn)生額外的系統(tǒng)資源消耗,使得計(jì)算結(jié)果的偏差較小。


為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將 對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作筒單地介紹,顯而易見(jiàn) 地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技 術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲 得其他的附圖。
圖1是本發(fā)明的獲取CPU利用率的方法實(shí)施例一的流程圖; 圖2是本發(fā)明的獲取CPU利用率的方法實(shí)施例二的流程圖; 圖3是本發(fā)明的獲取CPU利用率的方法實(shí)施例三的流程圖; 圖4是本發(fā)明的獲取CPU利用率的方法實(shí)施例三中,多核CPU設(shè)置 定時(shí)器的連接示意圖5是本發(fā)明的獲取CPU利用率的裝置實(shí)施例 一 的結(jié)構(gòu)示意圖; 圖6是本發(fā)明的獲取CPU利用率的裝置實(shí)施例二的結(jié)構(gòu)示意圖; 圖7是本發(fā)明的獲取CPU利用率的裝置實(shí)施例三的結(jié)構(gòu)示意圖。
8
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案 進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí) 施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù) 人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本 發(fā)明保護(hù)的范圍。
為使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下 面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說(shuō)明。
參考圖1,在本發(fā)明實(shí)施例一中,實(shí)現(xiàn)本發(fā)明實(shí)施例一所提供的方法
可以包括以下步驟
步驟101:在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)指令 總數(shù);
在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例可以應(yīng)用于CPU上并沒(méi)有l(wèi)喿作系統(tǒng)運(yùn) 行的應(yīng)用場(chǎng)景,這種沒(méi)有操作系統(tǒng)的CPU的運(yùn)行方式可以認(rèn)為是多個(gè)循 環(huán),每次循環(huán)執(zhí)行一段代碼,這種方式可以稱為輪詢;在獲取CPU的利 用率時(shí),首先需要設(shè)置一閾值時(shí)間,則本實(shí)施例可以計(jì)算所述一闊值時(shí) 間內(nèi),CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
具體的,所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)可以通過(guò)以下方式獲取 子步驟Al:獲取一閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令數(shù)和單次業(yè) 務(wù)指令數(shù);
子步驟A2:分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),以獲 得所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
所述單次輪詢指令數(shù)之和即為所述輪詢指令總數(shù),所述單次業(yè)務(wù)指 令總數(shù)之和即為業(yè)務(wù)指令總數(shù);
步驟102:依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU 的利用率。
將所述步驟101中獲取到的業(yè)務(wù)指令總數(shù),除以所述輪詢指令數(shù), 就可以得到所述一閾值時(shí)間內(nèi)的CPU利用率。
在本發(fā)明實(shí)施例一中,可以看出,當(dāng)CPU沒(méi)有操作系統(tǒng)運(yùn)行時(shí),可 以根據(jù)輪詢指令數(shù),和CPU實(shí)際執(zhí)行的業(yè)務(wù)指令數(shù),計(jì)算得到CPU的利用率,本實(shí)施例在實(shí)際中基于CPU的指令計(jì)數(shù)寄存器來(lái)實(shí)現(xiàn),就使得本
發(fā)明實(shí)施例對(duì)于CPU的配置要求較低,無(wú)需操作系統(tǒng)支持,并且,進(jìn)一
步的,可以通過(guò)讀物指令計(jì)數(shù)寄存器上的指來(lái)獲取輪詢指令數(shù)和業(yè)務(wù)指 令數(shù),同時(shí)不會(huì)產(chǎn)生額外的系統(tǒng)資源消耗,使得計(jì)算結(jié)果的偏差較小。
參考圖2,在本發(fā)明實(shí)施例二中,實(shí)現(xiàn)本發(fā)明實(shí)施例二所提供的方法 可以包括以下步驟
步驟201:在一閾值時(shí)間內(nèi),在每次4侖詢開(kāi)始時(shí),獲取所述CPU的 指令計(jì)數(shù)寄存器的第一計(jì)數(shù)值;
在實(shí)際中,所述一閾值時(shí)間可以由用戶自主i殳置;在該閾值時(shí)間內(nèi) 的每次輪詢開(kāi)始時(shí),讀取CPU硬件架構(gòu)中的指令技術(shù)寄存器上的數(shù)值, 記為第一計(jì)數(shù)值;
步驟202:在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述指令計(jì)數(shù)寄存器的第二 計(jì)數(shù)值;
當(dāng)該次輪詢內(nèi)觸發(fā)了業(yè)務(wù)處理時(shí),例如,在報(bào)文處理設(shè)備中有報(bào)文 需要處理,則在業(yè)務(wù)處理的開(kāi)始時(shí),讀取所述指令計(jì)數(shù)寄存器的上的數(shù) 值,記為第二計(jì)數(shù)值;
步驟203:在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第三 計(jì)數(shù)值;
在業(yè)務(wù)處理結(jié)束時(shí),讀取所述指令計(jì)數(shù)寄存器的上的數(shù)值,記為第 三計(jì)數(shù)值;
步驟204:在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第四計(jì)數(shù)
值;
在該次輪詢結(jié)束時(shí),讀取所述指令計(jì)數(shù)寄存器的上的數(shù)值,記為第 四計(jì)數(shù)值;
步驟205:分別獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的差,以及所述第 三計(jì)數(shù)值和第二計(jì)數(shù)值的差,則所述差值分別為所述單次輪詢指令數(shù)和 單次業(yè)務(wù)指令數(shù);
獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的差,將所述差值記為單次輪詢 指令數(shù),并獲取第三計(jì)數(shù)值和第二計(jì)數(shù)值的差,將所述差值記為單次業(yè)
10務(wù)指令數(shù);
步驟206:分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),以獲得 所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
在所述一 閾值時(shí)間內(nèi),可以包括多次輪詢,則累計(jì)每次輪詢時(shí)間內(nèi) 的單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),可以分別獲得所述輪詢指令總數(shù) 和業(yè)務(wù)指令總數(shù);
步驟207:依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU 的利用率。
其中,在計(jì)算得到所述CPU的利用率之后,還可以將所述輪詢指令 總數(shù)和業(yè)務(wù)指令總數(shù)清零。
在本發(fā)明實(shí)施例二中,可以看出,當(dāng)CPU沒(méi)有操作系統(tǒng)運(yùn)行時(shí),可 以根據(jù)輪詢指令總數(shù),和CPU實(shí)際執(zhí)行的業(yè)務(wù)指令總數(shù),計(jì)算得到CPU 的利用率,本實(shí)施例在實(shí)際中基于CPU的指令計(jì)數(shù)寄存器來(lái)實(shí)現(xiàn),通過(guò) 讀取所述指令計(jì)數(shù)寄存器的值可以獲得輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù), 就使得本發(fā)明實(shí)施例對(duì)于CPU的配置要求較低,無(wú)需操作系統(tǒng)支持,并 且,進(jìn)一步的,可以通過(guò)讀物指令計(jì)數(shù)寄存器上的指來(lái)獲取輪詢指令數(shù) 和業(yè)務(wù)指令數(shù),同時(shí)不會(huì)產(chǎn)生額外的系統(tǒng)資源消耗,使得計(jì)算結(jié)果的偏 差較小。
參考圖3,在本發(fā)明實(shí)施例三中,實(shí)現(xiàn)本發(fā)明實(shí)施例三所提供的方法 可以包括以下步驟
步驟301:在所述多核CPU的任一核上設(shè)置定時(shí)器,所述定時(shí)器的 預(yù)置時(shí)間為所述 一 閾值時(shí)間;
在本實(shí)施例中,所述CPU為多核CPU ,所述一閾值時(shí)間可以通過(guò) 設(shè)置定時(shí)器來(lái)實(shí)現(xiàn),其中,可以在多核CPU的任一核上設(shè)置,所述定時(shí) 器的預(yù)置時(shí)間具體為所述 一 閾值時(shí)間;
參考圖4,為多核CPU中設(shè)置定時(shí)器時(shí)的示意步驟302:在所述一閾值時(shí)間內(nèi),獲取所述多核CPU上各核相應(yīng)的 多個(gè)輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
在所述一閾值時(shí)間內(nèi),獲取到多核CPU的每個(gè)核上相應(yīng)的多個(gè)輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
步驟303:分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè)務(wù)指令總數(shù),以 獲得多核CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
將多個(gè)輪詢指令總數(shù)進(jìn)行累計(jì),所述累計(jì)之和為多核CPU的輪詢指 令總數(shù),并將多個(gè)業(yè)務(wù)指令總數(shù)進(jìn)行累計(jì),所述累計(jì)之和為多核CPU的 業(yè)務(wù)指令總數(shù);
步驟304:依據(jù)所述多核CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算 得到所述CPU的利用率;
步驟305:將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。
在本實(shí)施例中,還可以在計(jì)算獲取多核CPU的利用率之后,將所述 累計(jì)之和,即是所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零,以便于下 一次可以繼續(xù)統(tǒng)計(jì)某段時(shí)間內(nèi)的CPU利用率。運(yùn)用本實(shí)施例所述的方法, 可以統(tǒng)計(jì)出在沒(méi)有運(yùn)行操作系統(tǒng)時(shí),多核CPU的利用率,并且依據(jù)輪詢 指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到的利用率,相對(duì)準(zhǔn)確度較高。
對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列 的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng) 作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí) 進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均 屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
與上述本發(fā)明實(shí)施例所提供的方法相對(duì)應(yīng),參見(jiàn)圖5,本發(fā)明還提供 了 一種獲取CPU利用率的裝置實(shí)施例一,所述裝置具體可以包括
統(tǒng)計(jì)模塊501,用于在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和 業(yè)務(wù)指令總數(shù);
具體的,所述統(tǒng)計(jì)才莫塊501可以包括以下子才莫塊
第 一獲取子模塊,用于獲取一 閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令 數(shù)和單次業(yè)務(wù)指令數(shù);
第一累計(jì)子模塊,用于分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指 令數(shù),以獲得所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
計(jì)算模塊502,用于依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到
12所述CPU的利用率。
在本實(shí)施例中,所述裝置可以細(xì)分為兩個(gè)模塊,其中,所述統(tǒng)計(jì)模
塊401具體可以統(tǒng)計(jì)出CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù),并由計(jì)算 模塊402依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU的利 用率。本發(fā)明實(shí)施例所述的裝置,可以應(yīng)用于CPU上并沒(méi)有運(yùn)行操作系 統(tǒng)的應(yīng)用場(chǎng)景。
與本發(fā)明方法實(shí)施例二相對(duì)應(yīng),參考圖6所示,示出了本發(fā)明裝置 實(shí)施例二的結(jié)構(gòu)示意圖,如圖所示,該裝置可以包括
第二獲取子模塊601,用于在每次輪詢開(kāi)始時(shí),獲取所述CPU的指 令計(jì)數(shù)寄存器的第一計(jì)數(shù)值;
第三獲取子模塊602,用于在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述CPU 的指令計(jì)數(shù)寄存器的第二計(jì)數(shù)值;
第四獲取子模塊603,用于在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì) 數(shù)寄存器的第三計(jì)數(shù)值;
第五獲取子模塊604,用于在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄 存器的第四計(jì)數(shù)值;
第六獲取子模塊605,用于分別獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的 差,以及所述第三計(jì)數(shù)值和第二計(jì)數(shù)值的差,則所述差值分別為所述單 次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù);
第一累計(jì)子模塊606,用于分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù) 指令數(shù),以獲得所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)。
計(jì)算模塊607,用于依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到 所述CPU的利用率。
當(dāng)CPU沒(méi)有操作系統(tǒng)運(yùn)行時(shí),可以根據(jù)輪詢指令總數(shù),和CPU實(shí)際 執(zhí)行的業(yè)務(wù)指令總數(shù),由所述計(jì)算模塊607計(jì)算得到CPU的利用率,本 實(shí)施例在實(shí)際中基于CPU的指令計(jì)數(shù)寄存器來(lái)實(shí)現(xiàn),通過(guò)讀取所述指令 計(jì)數(shù)寄存器的值可以獲得輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù),就使得本發(fā)明 實(shí)施例對(duì)于CPU的配置要求較低,無(wú)需操作系統(tǒng)支持,并且,進(jìn)一步的, 可以通過(guò)讀物指令計(jì)數(shù)寄存器上的指來(lái)獲取輪詢指令數(shù)和業(yè)務(wù)指令數(shù),同時(shí)不會(huì)產(chǎn)生額外的系統(tǒng)資源消耗,使得計(jì)算結(jié)果的偏差較小。
與上述本發(fā)明方法實(shí)施例三相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種獲
取CPU利用率的裝置實(shí)施例三,參考圖7所示,所述裝置可以包括
設(shè)置模塊701,用于在所述多核CPU的任一核上設(shè)置定時(shí)器,所述 定時(shí)器的預(yù)置時(shí)間為所述 一 閾值時(shí)間。
第七獲取子模塊702,用于在所述一閾值時(shí)間內(nèi),獲取所述多核CPU 上各核相應(yīng)的多個(gè)輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);
第二累計(jì)子模塊703,用于分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè) 務(wù)指令總數(shù),以獲得多核CPU的輪詢指令數(shù)和業(yè)務(wù)指令數(shù);
計(jì)算模塊704,用于依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到 所述CPU的利用率;
初始化模塊705,用于將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。
本發(fā)明可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的 一般上下文中描 述,例如程序模塊。 一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽 象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布 式計(jì)算環(huán)境中實(shí)踐本發(fā)明,在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò) 而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊 可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
所以所述獲取CPU利用率的裝置實(shí)施例未詳盡之處,可以參見(jiàn)前述對(duì)獲 取CPU利用率的方法實(shí)施例的描述,在此不再對(duì)裝置作詳細(xì)描述。
還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅 僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要 求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而 且,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的包 含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那 些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò) 程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要素,并不排除在包括所述要素的過(guò)程、 方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明實(shí)施例所提供的一種獲取CPU利用率的方法及裝置進(jìn) 行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行 了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明實(shí)施例的方法及其
思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明實(shí)施例的思想, 在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi) 容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種獲取CPU利用率的方法,其特征在于,包括在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU的利用率。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在一閾值時(shí)間內(nèi), 統(tǒng)計(jì)CPU的輪詢指令數(shù),具體包括獲取一 閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù); 分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),以獲得所述輪詢 指令總數(shù)和業(yè)務(wù)指令總數(shù)。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取一閾值時(shí)間 內(nèi)每次輪詢的單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù),具體包括在每次輪詢開(kāi)始時(shí),獲取所述CPU的指令計(jì)數(shù)寄存器的第一計(jì)數(shù)值; 在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述CPU的指令計(jì)數(shù)寄存器的第二計(jì) 數(shù)值;在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第三計(jì)數(shù)值; 在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存器的第四計(jì)數(shù)值; 分別獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的差,以及所述第三計(jì)數(shù)值和第二計(jì)數(shù)值的差,則所述差值分別為所述單次輪詢指令數(shù)和單次業(yè)務(wù)指令數(shù)。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述CPU為多核CPU, 則所述統(tǒng)計(jì)多核CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù),具體包括獲取所述多核CPU上各核相應(yīng)的多個(gè)輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè)務(wù)指令總數(shù),以獲得多核 CPU的輪詢指令數(shù)和業(yè)務(wù)指令數(shù)。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述多核CPU的任 一核上設(shè)置定時(shí)器,所述定時(shí)器的預(yù)置時(shí)間為所述一 閾值時(shí)間。
6、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述依據(jù)所述輪詢指 令數(shù)和業(yè)務(wù)指令數(shù)計(jì)算得到所述CPU的利用率之后,還包括將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。
7、 一種獲取CPU利用率的裝置,其特征在于,包括 統(tǒng)計(jì)模塊,用于在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);計(jì)算模塊,用于依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所 述CPU的利用率。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述統(tǒng)計(jì)模塊具體包括第 一獲取子模塊,用于獲取一 閾值時(shí)間內(nèi)每次輪詢的單次輪詢指令 數(shù)和單次業(yè)務(wù)指令數(shù);第 一 累計(jì)子模塊,用于分別累計(jì)所述單次輪詢指令數(shù)和單次業(yè)務(wù)指 令數(shù),以獲得所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一獲取子模塊 具體包括第二獲取子模塊,用于在每次輪詢開(kāi)始時(shí),獲取所述CPU的指令計(jì) 數(shù)寄存器的第一計(jì)數(shù)值;第三獲取子模塊,用于在觸發(fā)單次業(yè)務(wù)處理時(shí),獲取所述CPU的指 令計(jì)數(shù)寄存器的第二計(jì)數(shù)值;第四獲取子模塊,用于在所述業(yè)務(wù)處理結(jié)束時(shí),獲取所述指令計(jì)數(shù) 寄存器的第三計(jì)數(shù)值;第五獲取子模塊,用于在該次輪詢結(jié)束時(shí),獲取所述指令計(jì)數(shù)寄存 器的第四計(jì)數(shù)值;第六獲取子模塊,用于分別獲取所述第四計(jì)數(shù)值和第一計(jì)數(shù)值的差, 以及所述第三計(jì)數(shù)值和第二計(jì)數(shù)值的差,則所述差值分別為所述單次輪 詢指令數(shù)和單次業(yè)務(wù)指令數(shù)。
10、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述統(tǒng)計(jì)模塊具體 包括第七獲取子模塊,用于獲取所述多核CPU上各核相應(yīng)的多個(gè)輪詢指 令總數(shù)和業(yè)務(wù)指令總數(shù);第二累計(jì)子模塊,用于分別累計(jì)所述多個(gè)輪詢指令總數(shù)和多個(gè)業(yè)務(wù)指令總數(shù),以獲得多核CPU的輪詢指令數(shù)和業(yè)務(wù)指令數(shù)。
11、 根據(jù)權(quán)利要求IO所述的裝置,其特征在于,還包括 設(shè)置模塊,用于在所述多核CPU的任一核上設(shè)置定時(shí)器,所述定時(shí)器的預(yù)置時(shí)間為所述 一 閾值時(shí)間。
12、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括 初始化模塊,用于將所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)的值清零。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種獲取CPU利用率的方法及裝置,所述方法包括在一閾值時(shí)間內(nèi),統(tǒng)計(jì)CPU的輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù);依據(jù)所述輪詢指令總數(shù)和業(yè)務(wù)指令總數(shù)計(jì)算得到所述CPU的利用率。根據(jù)本發(fā)明實(shí)施例,就使得本發(fā)明實(shí)施例對(duì)于CPU的配置要求較低,無(wú)需操作系統(tǒng)支持,并且,進(jìn)一步的,可以通過(guò)讀物指令計(jì)數(shù)寄存器上的指令來(lái)獲取輪詢指令數(shù)和業(yè)務(wù)指令數(shù),同時(shí)不會(huì)產(chǎn)生額外的系統(tǒng)資源消耗,使得計(jì)算結(jié)果的偏差較小。
文檔編號(hào)G06F11/34GK101493789SQ20091007706
公開(kāi)日2009年7月29日 申請(qǐng)日期2009年1月19日 優(yōu)先權(quán)日2009年1月19日
發(fā)明者何志福 申請(qǐng)人:聯(lián)想網(wǎng)御科技(北京)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
衡南县| 丰原市| 台南市| 大丰市| 东乡| 德惠市| 南部县| 台前县| 舞阳县| 塔城市| 金堂县| 定日县| 从化市| 禄丰县| 德钦县| 陇川县| 宁陵县| 冀州市| 乌兰县| 甘孜县| 东台市| 拜泉县| 四子王旗| 无锡市| SHOW| 东海县| 盐亭县| 额敏县| 轮台县| 黄浦区| 榕江县| 晋宁县| 绥宁县| 仙桃市| 垦利县| 石楼县| 商丘市| 太仆寺旗| 城步| 博乐市| 开平市|