请问如何差看一个程序所占用的内存?

EndDuke 2005-04-16 07:10:19
如题
...全文
208 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrlvls 2005-04-21
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
#include <windows.h>
#include <stdio.h>
#include "psapi.h"

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

// Print the process identifier.

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

// Print information about the memory usage of the process.

hProcess = OpenProcess( PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, 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 );
}

CloseHandle( hProcess );
}

void main( )
{
// Get the list of process identifiers.

DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;

if ( !EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ) )
return;

// Calculate how many process identifiers were returned.

cProcesses = cbNeeded / sizeof(DWORD);

// Print the memory usage for each process

for ( i = 0; i < cProcesses; i++ )
PrintMemoryInfo( aProcesses[i] );
}

看看,能不能满足你的要求,MSDN上有。
EndDuke 2005-04-19
  • 打赏
  • 举报
回复
怎么样?有这样的API么?
jin0706 2005-04-17
  • 打赏
  • 举报
回复
要问代码的话,你到开发板块问问吧,因为不知道你开发用的语言,你就自己把帖子转移到相应的板块吧
EndDuke 2005-04-17
  • 打赏
  • 举报
回复
我要Windows下的代码,想跟踪看一个程序在内存中占用的大小
EndDuke 2005-04-17
  • 打赏
  • 举报
回复
有相关的代码么?
icuc88 2005-04-16
  • 打赏
  • 举报
回复
用WMI应该可以,你到MS查看一下相关的资料。
icuc88 2005-04-16
  • 打赏
  • 举报
回复
或者用第三方工具

taskinfo
EndDuke 2005-04-16
  • 打赏
  • 举报
回复
..............谢谢楼上好心的大哥~~我问的不是这个。最近做一个代码判定平台,需要用到动态监视某几个程序所使用的内存,我需要的是源代码,或者是相关的API资料~谢谢你呵呵
luckjackie 2005-04-16
  • 打赏
  • 举报
回复
使用 Windows 任务管理器要执行某些任务,可能需要以 Administrators 组成员身份登录。

Windows 任务管理器提供了有关计算机性能的信息,并显示了计算机上所运行的程序和进程的详细信息。如果您连接到网络,也可以查看网络状态并迅速了解网络是如何工作的。根据您的工作环境,以及您是否与其他用户共享您的计算机,您还可以查看关于这些用户的其他信息。使用 Windows 任务管理器,您还可以结束程序或进程、启动程序以及查看计算机性能的动态显示。

打开 Windows 任务管理器。

注意

要打开 Windows 任务管理器,请用右键单击任务栏上的空白处,然后单击“任务管理器”。
有关使用 Windows 任务管理器的信息,请单击 Windows 任务管理器中的“帮助”菜单。
详细信息,请单击“相关主题”。

EndDuke 2005-04-16
  • 打赏
  • 举报
回复
.......我说的是程序~~假设我已经拥有了此程序的handle
luckjackie 2005-04-16
  • 打赏
  • 举报
回复
任务管理器

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧