如何写一个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++语言来实现??? 展开
1、若A.exe程序在运行过程中使用了超过给定值的内存,则关闭A.exe并返回超内存的标记。
2、若A.exe程序运行超过了给定值的时间,则关闭A.exe并返回超时间的标记。
如果以上两点都不满足,则返回运行时的最大内存占用和运行时间。
怎样用C++语言来实现??? 展开
2个回答
展开全部
#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;
}
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询