当前位置: 技术问答>linux和unix
怎样得到一个函数单位时间里运行的次数????
来源: 互联网 发布时间:2017-01-03
本文导语: 本帖最后由 wyhhxx17 于 2011-09-25 14:26:36 编辑 现有一个内核模块里的函数,需要知道其单位时间内被调用运行了多少次,比如每1秒钟时间统计一下这1秒里面跑了多少次,我在这个函数里放了一个counter这样它每运行一次c...
|
执行前记录系统时间,执行后记录系统时间,把精度放到毫秒,做个除法就知道了……
如果LZ想统计这个函数的执行效率,也就是每秒最高执行多少次,这个就太难了……
首先,赋值也是需要时间的,I/O也是需要时间的,虽然可以尽力避免,但是这种误差相对还是很大……
另外,计算机的进程调度对用户来讲是随机而且透明的,你没法保证这段时间,CPU没有去干别的……
除非你用PV操作,不过1秒钟的PV,太可怕了……
如果LZ想统计这个函数的执行效率,也就是每秒最高执行多少次,这个就太难了……
首先,赋值也是需要时间的,I/O也是需要时间的,虽然可以尽力避免,但是这种误差相对还是很大……
另外,计算机的进程调度对用户来讲是随机而且透明的,你没法保证这段时间,CPU没有去干别的……
除非你用PV操作,不过1秒钟的PV,太可怕了……
|
如果就是像简单的看看每秒大概能执行多少次,方法太多了……
用定时器,每秒打印输出一次,linux、windows都支持定时器……
或者执行前打印时间,执行后打印时间,最后做除法都行……
如果想精确,不可能……
用定时器,每秒打印输出一次,linux、windows都支持定时器……
或者执行前打印时间,执行后打印时间,最后做除法都行……
如果想精确,不可能……
|
alarm一秒一次已经足够了,不过count一定要规定volatile,否则容易悲剧掉。
如果想精确点,可以单独起一个线程,做select超时阻塞,这样时间把握的比较准确。
如果想精确点,可以单独起一个线程,做select超时阻塞,这样时间把握的比较准确。
|
1、 alarm时钟
2、 新建一个线程sleep
方法很多的。
2、 新建一个线程sleep
方法很多的。