一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

VC 監(jiān)控進(jìn)程內(nèi)存使用情況

 SamBookshelf 2013-12-19
 VC & 監(jiān)控進(jìn)程內(nèi)存使用情況 

VC中使用GetProcessMemoryInfo函數(shù)得到的PROCESS_MEMORY_COUNTERS結(jié)構(gòu)體一直讓人很困惑,

尤其是將得到的值與任務(wù)管理器中顯示的值對(duì)比時(shí),更容易發(fā)現(xiàn)不吻合的情況。

以下例程中有PROCESS_MEMORY_COUNTERS結(jié)構(gòu)體各項(xiàng)與任務(wù)管理器中顯示的對(duì)應(yīng)關(guān)系。

  1. //ProcessMemory.cpp    
  2.   
  3. //用法:  
  4. //    argv[1]是子進(jìn)程的包含路徑的完整可執(zhí)行文件名  
  5. //    ProcessMemory notepad  
  6.   
  7. //編譯:  
  8. //    cl ProcessMemory.cpp    
  9.     
  10. //功能:     
  11. //    獲取子進(jìn)程的內(nèi)存使用情況  
  12.     
  13.     
  14. #include <stdio.h>     
  15. #include <windows.h>  
  16. #include <psapi.h>  
  17. #pragma comment(lib, "psapi.lib")   
  18.   
  19. int main(int argc, char *argv[])     
  20. {  
  21.     //CreateProcess的第一個(gè)參數(shù)     
  22.     STARTUPINFO StartupInfo = {0};     
  23.     StartupInfo.cb = sizeof(STARTUPINFO);   
  24.     
  25.     
  26.     //CreateProcess的第二個(gè)參數(shù)     
  27.     PROCESS_INFORMATION ProcessInfo = {0};     
  28.     
  29.     
  30.     CreateProcess(NULL, argv[1], NULL, NULL, TRUE, NULL, NULL, NULL, &StartupInfo, &ProcessInfo);  
  31.   
  32.   
  33.     //作用為:子進(jìn)程運(yùn)行結(jié)束后,查看它的內(nèi)存使用情況。  
  34.     //    此時(shí),所有非Peak的項(xiàng)均為0,所有Peak項(xiàng)顯示運(yùn)行期間的峰值  
  35.     //如果想在子進(jìn)程結(jié)束之前監(jiān)控它的內(nèi)存使用情況,可以將這句替換為  
  36.     //    Sleep(1000);  
  37.     //    作用為:子進(jìn)程運(yùn)行1000毫秒之后,查看它的內(nèi)存使用情況  
  38.     WaitForSingleObject(ProcessInfo.hProcess, INFINITE);  
  39.   
  40.   
  41.     PROCESS_MEMORY_COUNTERS pmc;  
  42.     GetProcessMemoryInfo(ProcessInfo.hProcess, &pmc, sizeof(pmc));  
  43.     //以下各項(xiàng)均以KB為單位  
  44.     //在任務(wù)管理器中顯示為:峰值工作設(shè)置(內(nèi)存)  
  45.     printf("%d\n", pmc.PeakWorkingSetSize/1024);  
  46.     //在任務(wù)管理器中顯示為:工作設(shè)置(內(nèi)存)  
  47.     printf("%d\n", pmc.WorkingSetSize/1024);  
  48.     printf("%d\n", pmc.QuotaPeakPagedPoolUsage/1024);  
  49.     //在任務(wù)管理器中顯示為:分頁(yè)池  
  50.     printf("%d\n", pmc.QuotaPagedPoolUsage/1024);  
  51.     printf("%d\n", pmc.QuotaPeakNonPagedPoolUsage/1024);  
  52.     //在任務(wù)管理器中顯示為:非頁(yè)面緩沖池  
  53.     printf("%d\n", pmc.QuotaNonPagedPoolUsage/1024);  
  54.     printf("%d\n", pmc.PeakPagefileUsage/1024);  
  55.     //在任務(wù)管理器中顯示為:內(nèi)存(專用工作集) //這是任務(wù)管理器的默認(rèn)顯示項(xiàng)!  
  56.     printf("%d\n", pmc.PagefileUsage/1024);  
  57.   
  58.   
  59.     return 0;     
  60. }  

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品一区二区三区激情| 99国产高清不卡视频| 日韩中文字幕有码午夜美女| 国产精品欧美一级免费| 亚洲国产精品一区二区| 九九热九九热九九热九九热| 久久99国产精品果冻传媒| 久久精品国产熟女精品| 麻豆最新出品国产精品| 日韩欧美国产亚洲一区| 久久国产精品热爱视频| 老熟妇乱视频一区二区| 妻子的新妈妈中文字幕| 日韩精品毛片视频免费看| 国产免费成人激情视频| 国产高清一区二区不卡| 亚洲综合精品天堂夜夜| 高潮少妇高潮久久精品99| 99久久国产亚洲综合精品| 福利视频一区二区三区| 精品少妇人妻av免费看| 青青操视频在线观看国产 | 国产免费一区二区不卡| 精品国产亚洲一区二区三区| 亚洲熟妇中文字幕五十路| 中文字幕区自拍偷拍区| 久久香蕉综合网精品视频| 空之色水之色在线播放 | 丰满人妻一二区二区三区av | 国产午夜福利在线观看精品| 91一区国产中文字幕| 黄片在线免费观看全集| 中文字幕亚洲精品乱码加勒比| 久久香蕉综合网精品视频| 91免费一区二区三区| 日本欧美视频在线观看免费 | 日韩精品毛片视频免费看| 中文字幕禁断介一区二区| 亚洲人午夜精品射精日韩| 日韩欧美综合中文字幕| 少妇在线一区二区三区|