性能测试之——内存分析

论坛 期权论坛 脚本     
匿名技术用户   2021-1-2 06:41   220   0

最近需要做了一些性能方面的测试工作,主要都是些关于软件的CPU使用、内存使用等等的一些统计。本人在这方面是个小白,在网上一顿神找,消化了各位高人的经验并总结记录了一下,以免忘光。

本文记录了一些Windows下内存使用统计的心得。先看代码(忘了从哪找来的了)。代码很简单:

void PrintMemoryInfo( HANDLE hProcess,DWORD processID )
{
PROCESS_MEMORY_COUNTERS pmc;

// Print the process identifier.

printf( "/nProcess ID: %u/n", processID );


if (NULL == hProcess)
return;

if ( GetProcessMemoryInfo( hProcess, &pmc, sizeof(pmc)) )
{
printf( "/tPageFaultCount: 0x%08X/n", pmc.PageFaultCount );
printf( "/tPeakWorkingSetSize: 0x%08X/n",
pmc.PeakWorkingSetSize );
printf( "/tWorkingSetSize: 0x%08X/n", pmc.WorkingSetSize );
printf( "/tQuotaPeakPagedPoolUsage: 0x%08X/n",
pmc.QuotaPeakPagedPoolUsage );
printf( "/tQuotaPagedPoolUsage: 0x%08X/n",
pmc.QuotaPagedPoolUsage );
printf( "/tQuotaPeakNonPagedPoolUsage: 0x%08X/n",
pmc.QuotaPeakNonPagedPoolUsage );
printf( "/tQuotaNonPagedPoolUsage: 0x%08X/n",
pmc.QuotaNonPagedPoolUsage );
printf( "/tPagefileUsage: 0x%08X/n", pmc.PagefileUsage );
printf( "/tPeakPagefileUsage: 0x%08X/n",
pmc.PeakPagefileUsage );
}


}

int main(void)
{
DWORD spid = 0;
if (std::cin>>spid)
{
std::cout<<"需要侦测Pid为 "<<spid<<"的性能状况"<<std::cin;
}
CurrentProcessId=spid;
HANDLE currentProcessHandle;
currentProcessHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, CurrentProcessId);
HANDLE HANDLEFOO = CreateThread(NULL,0,countNumber,NULL,NULL,NULL);
GetAllCurrentProcess();
while(true)
{

PrintMemoryInfo(currentProcessHandle,CurrentProcessId);
Sleep(500);
}
CloseHandle( currentProcessHandle );

return 0;
}

编译运行上面的程序,输入需要查看的进程pid,程序便会循环打印所选进程的内存信息:

可惜传不了图片,要不然就很直观了。简单说一下吧,在Windows任务管理器中点击“查看”->“选择列”,你可以把内存相关的选项都打上勾,

PageFaultCount: 0x000071F1 页面错误 29169
PeakWorkingSetSize: 0x03580000 高峰内存使用 54784k
WorkingSetSize: 0x006D2000 内存使用 6984k
QuotaPeakPagedPoolUsage: 0x0000ED1C 页面缓冲池峰值
QuotaPagedPoolUsage: 0x0000EB1C 页面缓冲池 58k
QuotaPeakNonPagedPoolUsage: 0x014D32F8 非页面缓冲池峰值
QuotaNonPagedPoolUsage: 0x00003828 非页面缓冲池 14k
PagefileUsage: 0x022C6000 虚拟内存大小 35608k
PeakPagefileUsage: 0x03311000 虚拟内存峰值

以上单位均为字节(Bytes)。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP