- 论坛徽章:
- 0
|
我写了一个驱动模块,在模块内部设置了一个宏调试开关,代码如下:
#define EP93_TEST_DEBUG /*debugging mode*/
#undef TEST_DBG_PRINT /* undef it, just in case */
#ifdef EP93_TEST_DEBUG
/* This one if debugging is on, and kernel space */
#define TEST_DBG_PRINT(fmt, args...) printk( KERN_INFO "EP93-TEST: " fmt, ## args)
#else
#define TEST_DBG_PRINT(fmt, args...) /* not debugging: nothing */
#endif
这样编译后运行,我通过一个应用层的测试程序,测试该模块的读功能,但是,我在该驱动模块中的读函数内部没有做任何工作,此时问题出现了:应用层的read函数的执行时间大概有13毫秒;而如果我把前面的“#define EP93_TEST_DEBUG”改为“#undef EP93_TEST_DEBUG”后,同样的测试程序,read的执行只需要几十个微秒。请教高手,这是什么原因,TEST_DBG_PRINT宏函数为什么对这个模块的执行效率有如此大的影响?谢谢! |
|