之前提到过这个timex组件,不过还是经常有朋友问起,就重新整理了一下
这个组件用来测试程序(可以是单个函数或一组函数)的执行时长,包含以下命令
函数声明如下
- timex() - 用来测试func的执行时长,func可带8个参数。func为NULL时,测试timexFunc()创建的函数列表。如果func的执行时长过短,则提议使用timexN()
- timexN() - 类似于timex,但重复调用func,直到误差小于2%
- timexFunc() - 创建一个函数列表,用于timex()或timexN()的测试。列表长度为4,参数i指定函数func在列表中的位置,取值0、1、2或3。func为NULL时,表示去除相应位置的函数
- timexPre() - 执行测试之前需调用的函数列表,列表长度为4
- timexPost() - 执行测试之后需调用的函数列表,列表长度为4
- timexShow() - 打印上面的三个函数列表
- timexClear() - 清除所有的函数列表
这个timex机制的优点是:不需要修改被测程序。不过它是以系统时钟为基准,精度有限;而timexN()则需要被测函数可以重复调用。因此可以考虑使用高精度时间戳来封装测试机制。