直接看**吧,不過有點亂,細心看下吧:
// processmemory.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
//用法:
// argv[1]是子程序的包含路徑的完整可執行檔名
// processmemory notepad 06. 07.//編譯: 08.
// cl processmemory.cpp 09.
//功能:
// 獲取子程序的記憶體使用情況 12.
#include
#include
#include
#include
#include
using namespace std;
#pragma comment(lib, "psapi.lib")
/*typedef struct _process_memory_counters process_memory_counters,
*pprocess_memory_counters;
*///提公升程序許可權
bool adjustpurview()
void printprocessnameandid( dword processid )
process_memory_counters pmc;
getprocessmemoryinfo(hprocess, &pmc, sizeof(pmc));
//getprocessmemoryinfo(processinfo.hprocess, &pmcex, sizeof(pmcex));
//以下各項均以kb為單位 45.
//在任務管理器中顯示為:峰值工作設定(記憶體)
printf("%d/n", pmc.peakworkingsetsize/1024);
//在任務管理器中顯示為:工作設定(記憶體)
printf("%d/n", pmc.workingsetsize/1024);
printf("%d/n", pmc.quotapeakpagedpoolusage/1024);
//在任務管理器中顯示為:分頁池
printf("%d/n", pmc.quotapagedpoolusage/1024);
printf("%d/n", pmc.quotapeaknonpagedpoolusage/1024);
//在任務管理器中顯示為:非頁面緩衝池
printf("%d/n", pmc.quotanonpagedpoolusage/1024);
printf("%d/n", pmc.peakpagefileusage/1024);
//在任務管理器中顯示為:記憶體(專用工作集) //這是任務管理器的預設顯示項! (虛擬記憶體)
printf("%d/n", pmc.pagefileusage/1024);
}//回顯程序名稱和id
printf( " %-20d%-20s", processid , szprocessname);
closehandle( hprocess );
}int _tmain(int argc, _tchar* argv)
;
startupinfo.cb = sizeof(startupinfo);
//createprocess的第二個引數
process_information processinfo = ;
dword aprocesses[1024], cbneeded, cprocesses;
unsigned int i;
//列舉系統程序id列表
if ( !enumprocesses( aprocesses, sizeof(aprocesses), &cbneeded ) )
//計算程序數量
cprocesses = cbneeded / sizeof(dword);
// 輸出每個程序的名稱和id
for ( i = 0; i < cprocesses; i++ )
//createprocess(null, argv[1], null, null, true, null, null, null, &startupinfo, &processinfo);
作用為:子程序執行結束後,檢視它的記憶體使用情況。
此時,所有非peak的項均為0,所有peak項顯示執行期間的峰值
如果想在子程序結束之前監控它的記憶體使用情況,可以將這句替換為 \
sleep(1000);
作用為:子程序執行1000毫秒之後,檢視它的記憶體使用情況
//waitforsingleobject(processinfo.hprocess, infinite);
//process_memory_counters pmc;
process_memory_counters_ex pmcex;
//getprocessmemoryinfo(processinfo.hprocess, &pmc, sizeof(pmc));
getprocessmemoryinfo(processinfo.hprocess, &pmcex, sizeof(pmcex));
以下各項均以kb為單位 45.
在任務管理器中顯示為:峰值工作設定(記憶體)
//printf("%d/n", pmc.peakworkingsetsize/1024);
在任務管理器中顯示為:工作設定(記憶體)
//printf("%d/n", pmc.workingsetsize/1024);
//printf("%d/n", pmc.quotapeakpagedpoolusage/1024);
在任務管理器中顯示為:分頁池
//printf("%d/n", pmc.quotapagedpoolusage/1024);
//printf("%d/n", pmc.quotapeaknonpagedpoolusage/1024);
在任務管理器中顯示為:非頁面緩衝池
//printf("%d/n", pmc.quotanonpagedpoolusage/1024);
//printf("%d/n", pmc.peakpagefileusage/1024);
在任務管理器中顯示為:記憶體(專用工作集) //這是任務管理器的預設顯示項!
//printf("%d/n", pmc.pagefileusage/1024);
return 0;
}
檢視程序記憶體使用情況
ps命令是linux下常見的檢視程序狀況的程式,它有幾個字段可以用來檢視 程序記憶體使用情況 sz,rss,vsz。分別說明如下 假如我要檢視程式a.out的記憶體使用情況,操作如下 a.out 1 10069 ps o sz,rsz,vsz pid sz rss vsz s tty time co...
PHP獲取記憶體使用情況
php內建函式memory get usage 能返回當前分配給php指令碼的記憶體量,單位是位元組 byte 在web實際開發中,這些函式非常有用,我們可以使用它來除錯php 效能。memory get usage 函式返回記憶體使用量,memory get peak usage 函式返回記憶體使...
Java 獲取記憶體使用情況
公司要求將各個裝置上傳的資料分析並且匯出到統一的乙個表中,目前在準備,資料比較多,所以需要考慮到記憶體的使用情況,經網上查詢使用,出現了以下問題。logutils.debug totalmemory runtime.getruntime totalmemory 1024 1024 m logutil...