当我从Java代码执行C++程序时,我应该如何测量它的执行时间

How should i measure execution time of a C++ program when I execute it from Java code?

本文关键字:何测量 测量 执行时间 我应该 Java 代码 执行 程序 C++      更新时间:2023-10-16

我知道这个问题一开始可能没有意义,但我会在这里解释。

首先,我有以下C++代码,一个简单的Hello World。

#include <stdio.h>
#include <stdlib.h>
int main()
{
  printf("Hello World ");
  return(0);
}

现在我在Java中使用以下代码来调用它:

long start = System.nanoTime();
Process p = Runtime.getRuntime().exec("/home/name/./test");  
long totalTime = System.nanoTime() - start;
System.out.println("Time: " + totalTime);

做了几次之后,我得到了以下输出:

时间:8155128

时间:732204

时间:508819

时间:662987

我想知道这是否是衡量c++代码执行时间的正确方法,我想知道是否有解释为什么第一次执行显示的时间总是比其他执行大10倍(即使是纳秒)

操作系统可能会将c++应用程序放在缓存中,这样下次执行会更快。