驱动程序中的时间消耗计算
我们在驱动程序调试中,经常需要测试两个点的运行时间,来判断驱动中哪里占用了过多的时间,特别是在一些特殊的keyboard驱动中。
作者:
欢迎大家在此讨论相关内容。
在计算消耗时间的时候,一般需要注意以下几点:
1.
计算时间时,最好不要在打印时间点,因为串口打印会占用大量时间。
2.
如果有循环,最好在循环外计算时间。
3.
注意条件分支的跳出,有时会导致时间计算失误。
先总结到这里,另有时间再完善。
- static unsigned long bf_time, af_time, bf_all_time, af_all_time;
-
static inline unsigned long get_time (void)
-
{
-
struct timeval tv;
-
-
do_gettimeofday(&tv);
-
return (1000000 * tv.tv_sec + tv.tv_usec);
-
}
-
bf_all_time = get_time();
-
-
bf_time = get_time();
-
-
af_time = get_time();
-
-
af_all_time = get_time();
-
printk(KERN_ALERT "%s: ========all_time = %dms, time = %dms\n",
-
-
__func__,
-
-
(af_all_time - bf_all_time) / 1000, (af_time - bf_time) / 1000);
作者:
欢迎大家在此讨论相关内容。
阅读(2501) | 评论(0) | 转发(1) |