Chinaunix首页 | 论坛 | 博客
  • 博客访问: 834305
  • 博文数量: 143
  • 博客积分: 455
  • 博客等级: 一等列兵
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-03 00:11
文章分类

全部博文(143)

文章存档

2018年(10)

2017年(6)

2016年(28)

2015年(14)

2014年(67)

2013年(1)

2012年(17)

我的朋友

分类: LINUX

2014-11-07 10:13:56

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

 

我们在驱动程序调试中,经常需要测试两个点的运行时间,来判断驱动中哪里占用了过多的时间,特别是在一些特殊的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);

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

阅读(942) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~