问题描述
我知道这里有很多听起来相似的问题,但我已经看过很多问题,但我没有找到明确的答案,如果我想做什么是可能的。
我有一个应用程序,它使用 OpenCV 实时处理来自相机的图像。处理由几个步骤组成,包含在单独的方法中,如过滤、阈值处理等。我想估计每种方法使用的 cpu 时间,以估计它们的能耗。我知道我可以做类似的事情
public long filter(Mat input) {
long time = System.elapsedRealtime();
...
return System.elapsedRealtime() - time;
}
获取每个方法调用的执行时间,但我认为因为我想将其与能耗相关联,所以它不够精确。有没有办法获得当前进程的总 cpu 时间? (我知道在 Android Studio 的 Energy Profiler 中我可以跟踪方法的 cpu 时间,但我想知道这是否可以在运行时以编程方式实现)
解决方法
您是否正在寻找这样的东西:
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;
}