【发布时间】:2014-09-02 09:51:43
【问题描述】:
我遇到了一个应用程序(同时使用 java 和 C++ 以及 OpenCV)的问题,该应用程序在执行各种任务所需的时间方面似乎非常不一致。为了帮助诊断这一点,我在 java 中创建了一个函数(称为one_off_speed_test()),它只在大约半秒的循环中处理了一系列整数数学问题,然后将所用时间打印到日志中。如果我从onCreate() 中重复调用此函数,那么每次调用所花费的时间非常一致(+= 3%),但如果我从onCameraFrame() 中调用它,OpenCV 在准备好图像时调用它从相机拍摄,然后每个帧中数学测试所用的时间变化最多为两倍。我决定在 eclipse/DDMS 中尝试执行采样器,看看我是否能弄清楚发生了什么。我看到当我点击one_off_speed_test() 时,它列出了该函数的父母和孩子,以及一行“(上下文切换)”。然后在该行上,在标有“Incl Real Time”的列下,显示“66%”。现在我对DDMS的使用不是很熟练,对上下文切换只有一个模糊的想法,但是从目前的描述来看,是不是我有上下文切换占用大量时间的问题?还是我误解了 DDMS 的输出。
【问题讨论】:
标签: android opencv android-ndk profiling android-traceview