0

我知道这里有很多听起来相似的问题,但我已经看了很多,但我还没有找到一个明确的答案,我想做的事情是否可行。

我有一个使用 OpenCV 实时处理来自相机的图像的应用程序。该处理由几个步骤组成,包含在单独的方法中,如过滤、阈值处理等。我想估计每种方法使用的 CPU 时间,以估计它们的能耗。我知道我可以做类似的事情

public long filter(Mat input) { 
   long time = System.elapsedRealtime();
   
   ...

   return System.elapsedRealtime() - time;
}
   

获取每个方法调用的执行时间,但我认为因为我想将其与能耗相关联,所以它不够精确。有没有办法获得当前进程的总 CPU 时间?(我知道在 Android Studio 的 Energy Profiler 中我可以跟踪方法的 CPU 时间,但我想知道这是否可以在运行时以编程方式实现)

4

1 回答 1

0

您是否正在寻找这样的东西:

public long filter(Mat input) { 
   long start = System.nanoTime();
   
   // code you're measuring goes here

   long duration = System.nanoTime() - start;
   // log this duration somehow?

   return result;
}
于 2021-07-19T21:33:37.050 回答