我在2.6.22下通过修改系统调用read()、write()对应的最外层内核函数sys_read()和sys_write()扩展了读/写的功能,现在想测一下因扩展功能而带来的额外时间损耗。
我的想法是在功能代码的起始时刻取当前时间,结束时刻再取,然后求差值,累加。采取的方法是:
unsigned long starttime,finishtime;
startime=jiffies/HZ; //开始时刻取当前时间
finishtime=jiffies/HZ; //结束时刻取当前时间
printk ("syc_seconds = %d\nNow totaluse=%d", finishtime-starttime,totalsystime);
(totalsystime变量放在函数外面成为全局变量)
但是,采用这种方法记录下来的时间一直是0。
是不是我的想法有问题啊?在内核中应该怎样取某个时刻的当前时间和记录一段代码的执行时间呢?
望高手解决,不甚感谢!


jipingwt 于 2009-10-03 09:52:58发表:
2# zha2530
你好!我就是经过编译过后进行测试的,很奇怪,一直为0。
gsm1011 于 2009-10-02 22:35:38发表:
我认为应该可以有函数调用得到时间,然后相减就可以了。 可以参考sys/time.h文件。
zha2530 于 2009-10-02 20:19:59发表:
经过编译器编译之后,就不是你想的那么回事了