C++ 测量任何Windows可执行文件的内存使用率和执行时间

C++ 测量任何Windows可执行文件的内存使用率和执行时间,c++,windows,batch-file,C++,Windows,Batch File,我需要通过创建一些批处理文件或代码片段来测量任何Windows可执行文件的内存使用和执行时间。就像在线评委一样,我希望流程完全自动化,这样我就不必每次需要测量时都打开任务管理器,也不必在原始源文件中插入额外的行 例如,如果我将这个特定C++源编译成可执行代码< A.EXE < /C> >: #include <cstdio> int main() { printf("%d", 1 + 2); } 我在StackOverflow上研究了几个小时,但结果要么是UNIX二进制文

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

例如,如果我将这个特定C++源编译成可执行代码< A.EXE < /C> >:

#include <cstdio>

int main()
{
    printf("%d", 1 + 2);
}
我在StackOverflow上研究了几个小时,但结果要么是UNIX二进制文件,要么是嵌入源代码的代码行


非常感谢。

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

文件:

示例代码:

至于时间,我偶然发现了另一个问题()

#包括
void f(){
使用名称空间std;
时钟开始=时钟();
//运行a.exe
clock_t end=clock();
双倍运行秒=双倍(结束-开始)/时钟秒;
}

正如我所说,我不想在原始代码中插入行,我认为您在这里出错了。我给出的两个示例都可以独立于您的程序运行。第一个将在a.exe已经运行时检查内存使用情况。第二个将执行一个.exe来测量它的运行时间。如何组合它们取决于您;)因此,您希望您的代码执行其他操作,但不改变它!然后,您的解决方案是创建更多的代码,这些代码与添加的功能一起运行。这是您的工作,研究和整理,我们在这里帮助您解决代码问题,而不是为您设计和创建代码。
Used: 0.015s, 3092K
#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;
}