驱动程序中的时间消耗计算

2556阅读 0评论2011-12-09 piaoyizu
分类:LINUX

                                     驱动程序中的时间消耗计算

 

我们在驱动程序调试中,经常需要测试两个点的运行时间,来判断驱动中哪里占用了过多的时间,特别是在一些特殊的keyboard驱动中。

 

作者:  欢迎大家在此讨论相关内容。

         在计算消耗时间的时候,一般需要注意以下几点:

1.       计算时间时,最好不要在打印时间点,因为串口打印会占用大量时间。

2.       如果有循环,最好在循环外计算时间。

3.       注意条件分支的跳出,有时会导致时间计算失误。

 

先总结到这里,另有时间再完善。

  1. static unsigned long bf_time, af_time, bf_all_time, af_all_time;

  2. static inline unsigned long get_time (void)
  3. {
  4.     struct timeval tv;

  5.     do_gettimeofday(&tv);
  6.     return (1000000 * tv.tv_sec + tv.tv_usec);
  7. }

  8. bf_all_time = get_time();

  9. bf_time = get_time();

  10. af_time = get_time();

  11. af_all_time = get_time();

  12. printk(KERN_ALERT "%s: ========all_time = %dms, time = %dms\n",

  13.                    __func__,

  14.                    (af_all_time - bf_all_time) / 1000, (af_time - bf_time) / 1000);

作者:  欢迎大家在此讨论相关内容。

上一篇:EXT3与EXT4的主要区别
下一篇:LinuxI2C总线驱动深入分析