C++ 测量任何Windows可执行文件的内存使用率和执行时间
我需要通过创建一些批处理文件或代码片段来测量任何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二进制文
例如,如果我将这个特定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;
}