<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>


    posts - 1,  comments - 20,  trackbacks - 0

    一.   有關(guān)Windows平臺下CPU使用率的計(jì)算

     

    1. WindowsCPU使用率的定義

    a)         CPU使用率:在任務(wù)管理器的刷新周期內(nèi)CPU忙的時間與整個刷新周期的比值。

    b)         任務(wù)管理器默認(rèn)的刷新周期是1s

     

    2. CPU使用率計(jì)算公式

    根據(jù)CPU使用率的定義我們可以得出在某一段時間內(nèi)總的CPU使用率的計(jì)算公式:

    sysTime:表示該時間段內(nèi)總的CPU時間=CPU處于用戶態(tài)和內(nèi)核態(tài)CPU時間的總和,即sysTime =kerneTimel + userTime(注:這里并不包括idleTime,因?yàn)楫?dāng)CPU處于空閑狀態(tài)時,實(shí)在內(nèi)核模式下運(yùn)行System Idle Process這個進(jìn)程,所以kernelTime實(shí)際上已經(jīng)包含了idleTime

    idleTime:表示在該時間段內(nèi)CPU處于空閑狀態(tài)的時間;

    CPU% = 1 – idleTime / sysTime * 100      

     

    3. 有關(guān)Cpu時間信息的獲取方式:

    基本思想:通過JNI(http://java.sun.com/docs/books/jni/html/jniTOC.html)將底層原生API獲取的有關(guān)進(jìn)程、線程、總的CPU時間等信息回傳給Java,然后上層再根據(jù)采集到數(shù)據(jù)以及以上的公式計(jì)算相關(guān)的CPU使用率。

     

    涉及到原生API

    說明(有關(guān)這些操作系統(tǒng)的原生API可以通過查詢MSDN來進(jìn)一步了解)

    http://msdn.microsoft.com/en-us/library/default.aspx

    GetSystemInfo

    根據(jù)該方法返回的結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu)SystemInfo中的dwNumberOfProcessors可以獲取系統(tǒng)中地CPU個數(shù)。

    OpenProcess

    通過該方法可以獲取指定進(jìn)程ID的進(jìn)程的句柄。

    GetProcessTimes

    根據(jù)OpenProcess方法回帶的進(jìn)程句柄,可以獲取該進(jìn)程的userTimekernelTime

    OpenThread

    通過該方法可以獲取指定線程ID的線程的句柄。

    GetThreadTimes

    根據(jù)OpenThread方法回帶的進(jìn)程句柄,可以獲取該線程的userTimekernelTime(注:這里的線程與Java里面的線程示一一對應(yīng)的)

    GetSystemTimes

    獲取總CPU時間idleTimekernelTimeuserTime(注:在多核情況下得到的是所有CPU的總和)。

     

    4. Windows平臺下CPU使用率的測試

    線程級別CPU使用率監(jiān)控

    說明:在一臺雙CPU的主機(jī)上監(jiān)控一個包含一個空循環(huán)子線程的一個進(jìn)程。其中每一組數(shù)據(jù)的格式為:

                                 進(jìn)程:進(jìn)程CPU使用率

    線程IDCPU使用率

    測試數(shù)據(jù):

    1組數(shù)據(jù):

    進(jìn)程:50[f1] 

       452:0

       3680:50[f2] 

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    2組數(shù)據(jù):

    進(jìn)程:48

       452:0

       3680:48

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    3組數(shù)據(jù):

    進(jìn)程:49

       452:0

       3680:49

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    4組數(shù)據(jù):

    進(jìn)程:50

       452:0

       3680:50

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    5組數(shù)據(jù):

    進(jìn)程:50

       452:0

       3680:50

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    6組數(shù)據(jù):

    進(jìn)程:49

       452:0

       3680:49

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    7組數(shù)據(jù):

    進(jìn)程:48

       452:0

       3680:48

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    8組數(shù)據(jù):

    進(jìn)程:49

       452:0

       3680:49

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    9組數(shù)據(jù):

    進(jìn)程:50

       452:0

       3680:50

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    10組數(shù)據(jù):

    進(jìn)程:48

       452:0

       3680:48

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    11組數(shù)據(jù):

    進(jìn)程:49

       452:0

       3680:49

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

    12組數(shù)據(jù):

    進(jìn)程:49

       452:0

       3680:49

       1712:0

       3620:0

       2860:0

       3000:0

       3800:0

       2112:0

       740:0

       2208:0

     

    數(shù)據(jù)分析

    1.  監(jiān)控時所取得采樣周期為1s,因?yàn)檫@個值與任務(wù)管理器的刷新頻率一致。

    2.  根據(jù)測試用例的的特殊性,被監(jiān)控進(jìn)程的CPU使用率在雙CPU環(huán)境下被監(jiān)控進(jìn)程的CPU使用率的理論值應(yīng)該為50%

    3.  根據(jù)測試用例的的特殊性,被監(jiān)控進(jìn)程的理論上應(yīng)該是包含一個CPU使用率接近50%,而其他線程的CPU使用率接近0

    4.  由以上實(shí)際的測試數(shù)據(jù),可以知道被監(jiān)控進(jìn)程的實(shí)際CPU使用率與理論值基本一致

    5.  根據(jù)以上測試數(shù)據(jù),可知進(jìn)程中各線程CPU使用率以及進(jìn)程的CPU用率也符合理論上的分析,都是一個線程的CPU使用率接近50%,而其他線程的CPU使用率接近0

     

    補(bǔ)充說明:

    1.  有關(guān)總的CPU使用率監(jiān)控,由于采集到的數(shù)據(jù)不具備可比性,所以只能人工的在測試的時候?qū)Ρ瘸绦虻玫降目偟?/span>CPU使用率和由任務(wù)管理器中得到的CPU使用率。對比的結(jié)論是:基本上與任務(wù)管理器中得到的數(shù)據(jù)一致的。

    2.  同理有關(guān)進(jìn)程CPU使用率的監(jiān)控,也只能人工的通過對比程序得到的進(jìn)程CPU使用率和任務(wù)管理器以及JConsole中的數(shù)據(jù)。對比的結(jié)論是:基本上與任務(wù)管理器和JConsole中得到的數(shù)據(jù)一致的。

    3.  在運(yùn)行Windows平臺下有關(guān)CPU使用率的監(jiān)控功能,得將Win32CpuTimeUtil.dll這個動態(tài)鏈接庫放到java.library.path目錄之下。其中Win32CpuTimeUtil.dll使用C語言實(shí)現(xiàn)的。

     

    5.參考文獻(xiàn):

     http://blog.csdn.net/JPEXE/archive/2008/12/17/3541270.aspx

     http://www.codeproject.com/KB/threads/Get_CPU_Usage.aspx


     [f1]由于是在雙CPU的環(huán)境下測試的,所以該進(jìn)程的CPU使用率為50%(按100%計(jì)算的)。

     [f2]3680表示Java線程的NativeThreadID50表示CPU使用率。

    posted on 2010-04-08 22:57 csgeek? 閱讀(8639) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(1)

    文章檔案(5)

    Personal Website

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚欧免费视频一区二区三区| 国产亚洲福利一区二区免费看| 亚洲另类视频在线观看| 亚洲天堂电影在线观看| 亚洲偷自拍另类图片二区| 羞羞视频免费网站入口| 国产精品1024在线永久免费| 日本免费人成网ww555在线| 成人免费视频69| 免费很黄很色裸乳在线观看| 亚洲精品无码久久久影院相关影片| 91亚洲va在线天线va天堂va国产| 国产人成亚洲第一网站在线播放| 人妻巨大乳hd免费看| 久久成人免费大片| 搡女人免费视频大全| 亚洲午夜成人精品电影在线观看| 久久精品国产亚洲av麻豆色欲| 日韩亚洲产在线观看| 久久一区二区免费播放| jjizz全部免费看片| 免费人成年轻人电影| 亚洲国产精品va在线播放| 亚洲中文字幕AV在天堂| 亚洲免费无码在线| 日韩在线免费视频| 亚洲国产人成精品| 亚洲色欲www综合网| 日韩亚洲翔田千里在线| 久久国产精品免费网站| 国产精品免费一级在线观看| 亚洲成AV人片在线观看| 亚洲精品无码av片| 久久爰www免费人成| 波多野结衣视频在线免费观看| 香蕉蕉亚亚洲aav综合| 国产精品亚洲综合一区在线观看 | 亚洲免费福利视频| 人碰人碰人成人免费视频| 色婷婷7777免费视频在线观看| 中文字幕无码精品亚洲资源网|