测量任何 Windows 可执行文件的内存使用情况和执行时间

Measuring the memory usage and execution time of any Windows executable

本文关键字:用情 情况 执行时间 内存 任何 Windows 可执行文件 测量      更新时间:2023-10-16

我需要通过创建一些批处理文件或代码片段来测量任何Windows可执行文件的内存使用情况和执行时间。就像在线评委一样,我希望这个过程是完全自动化的,这样我就不必每次需要测量时都打开任务管理器,或者在原始源文件中插入额外的行。

例如,如果我将此特定C++源编译为可执行a.exe

#include <cstdio>
int main()
{
printf("%d", 1 + 2);
}

并测量此特定a.exe的执行时间和内存使用情况,批处理应生成如下内容:

Used: 0.015s, 3092K

我已经在StackOverflow上研究了几个小时,但结果要么是UNIX二进制文件,要么是嵌入源代码的代码行。

提前非常感谢。

Microsoft已经有了一些可以做到这一点的东西(GetProcessMemoryInfo(。 MS 提供的示例代码将列出所有正在运行的进程的内存使用情况。但是,可以通过指定程序的句柄来更改它。

文档: https://msdn.microsoft.com/en-us/library/windows/desktop/ms683219(v=vs.85(.aspx

示例代码: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682050(v=vs.85(.aspx

至于时间,我偶然发现了另一个问题的片段(轻松测量经过的时间(

#include <ctime>
void f() {
using namespace std;
clock_t begin = clock();
//run a.exe
clock_t end = clock();
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
}
相关文章: