通過(guò)CPU負(fù)載信息,可以判斷程序運(yùn)行環(huán)境是否穩(wěn)定,幫助分析程序中是否有死循環(huán),造成系統(tǒng)變慢。
通過(guò)內(nèi)存使用信息,可以評(píng)估程序內(nèi)存占用情況,幫助分析程序中是否有內(nèi)存泄漏的情況。
客戶在開(kāi)發(fā)初期,可能經(jīng)常需要用到以上功能,英創(chuàng)提供一個(gè)簡(jiǎn)單的例程實(shí)現(xiàn)以上功能。
CPU負(fù)載檢測(cè)
通過(guò)GetTickCount獲得系統(tǒng)時(shí)間讀數(shù),通過(guò)GetIdleTime獲得CPU空閑時(shí)間讀數(shù),通過(guò)計(jì)算它們之間的百分比,就可以獲得CPU的負(fù)載。代碼如下:
DWORD m_dwStartTick;
DWORD m_dwEndTick;
DWORD m_dwStartIdle;
DWORD m_dwEndIdle;
m_dwStartTick = GetTickCount();
m_dwStartIdle = GetIdleTime();
//Sleep(1000);
DWORD dwCpuIdle;
m_dwEndTick = GetTickCount();
m_dwEndIdle = GetIdleTime();
dwCpuIdle = ((100*(m_dwEndIdle - m_dwStartIdle)) / (m_dwEndTick - m_dwStartTick));
RETAILMSG(1, (L'CPU:%d%%\r\n', 100 - dwCpuIdle));
內(nèi)存占用檢測(cè)
CE中,內(nèi)存一部分分配給系統(tǒng)使用,一部分分配給用戶程序使用,這個(gè)分配的比例可以通過(guò)userinfo.txt配置文件中的Store字段來(lái)分配。
[SYSTEM]
Store='15'
這里的15表示內(nèi)存15%大小分配給系統(tǒng)使用,剩下85%分配給用戶程序使用。詳情請(qǐng)參考光盤(pán)《使用必讀》文檔。
通過(guò)函數(shù)GlobalMemoryStatus,可以獲得分配給用戶程序的內(nèi)存大小(字節(jié)為單位),及目前空余的大小。
MEMORYSTATUS memstatus;
GlobalMemoryStatus(&memstatus);
STORE_INFORMATION storeinfo;
GetStoreInformation(&storeinfo);
RETAILMSG(1, (L'MEM:%d%%\r\nuser: total%8dKB\r\n used%8dKB\r\n',
memstatus.dwMemoryLoad,memstatus.dwTotalPhys/1024,(memstatus.dwTotalPhys-memstatus.dwAvailPhys)/1024);
通過(guò)函數(shù)GetStoreInformation,可以獲得分配給系統(tǒng)的內(nèi)存大小(字節(jié)為單位),及目前空余的大小。
STORE_INFORMATION storeinfo;
GetStoreInformation(&storeinfo);
RETAILMSG(1, (L'system:total%8dKB\r\n used%8dKB\r\n\r\n',
storeinfo.dwStoreSize/1024, (storeinfo.dwStoreSize-storeinfo.dwFreeSize)/1024));
例程說(shuō)明
運(yùn)行程序,程序會(huì)周期性讀取CPU占用率及內(nèi)存占用信息,顯示在界面中。
同時(shí)將信息打印到DEBUG調(diào)試串口,方便無(wú)顯示屏主板使用。
該程序不會(huì)占用太多CPU資源及內(nèi)存,可以放到后臺(tái)運(yùn)行。
例程及源碼已包含在最新的開(kāi)發(fā)光盤(pán)中,客戶也可以聯(lián)系英創(chuàng)工程師獲得。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35445
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論