如何写一个C++程序,执行A.exe,计算A.exe的运行时间和内存。

用C++语言写一个程序,调用A.exe程序。1、若A.exe程序在运行过程中使用了超过给定值的内存,则关闭A.exe并返回超内存的标记。2、若A.exe程序运行超过了给定... 用C++语言写一个程序,调用A.exe程序。

1、若A.exe程序在运行过程中使用了超过给定值的内存,则关闭A.exe并返回超内存的标记。
2、若A.exe程序运行超过了给定值的时间,则关闭A.exe并返回超时间的标记。

如果以上两点都不满足,则返回运行时的最大内存占用和运行时间。

怎样用C++语言来实现???
展开
 我来答
负家子弟
2009-10-15 · TA获得超过3567个赞
知道大有可为答主
回答量:1336
采纳率:0%
帮助的人:1466万
展开全部
#include "Windows.h"
#include <Psapi.h>
#pragma comment(lib,"psapi.lib")
int main(void)
{
STARTUPINFO si={0};
PROCESS_INFORMATION pi={0};
si.cb = sizeof(si);
if(!CreateProcess( NULL,"A.exe",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi))//启动A.exe,如果不在同一目录下请指定路径
{
DWORD StartTime=GetTickCount();//开始时间
DWORD TimeLen=2000;//设定时间长度单位毫秒
DWORD EndTime;
SIZE_T MemorySize=5000000;//设定内存用量上限
SIZE_T Maxsize=0;
PROCESS_MEMORY_COUNTERS pmc;
while(pi.hProcess)
{
pmc.cb=sizeof(PROCESS_MEMORY_COUNTERS);
GetProcessMemoryInfo(pi.hProcess,&pmc,pmc.cb);
if(Maxsize<pmc.PeakWorkingSetSize) Maxsize=pmc.PeakWorkingSetSize;
if(StartTime+TimeLen>GetTickCount() || pmc.PeakWorkingSetSize>MemorySize) break;
}
if(pi.hProcess)
{
TerminateProcess(pi.hProcess,0);
}
EndTime=GetTickCount();//结束时间
EndTime-StartTime;//用时
Maxsize;//最大内存用量

}
return 0;
}
182135
2009-10-16 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
高手,学习了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式