先fuck一下!刚才写到一半的文章居然没有掉了……心碎啊!!!
好了,言归正传。
先附上C++中验证两个函数执行效率的方法:(指令周期级)
运行结果如下:
由上面结果可以发现虽然第一次和第二次执行的是同一个函数,但是时钟周期还是不一样的,这是因为电脑里还有其他N多的程序在跑,时钟周期是相当小的一个单位,所以所受影响会较大,一般我们普通的用毫秒来计算一个算法的好坏就已经足够了,所以再附上一个以毫秒级表示的的程序代码:
结果就不贴了,直接复制运行就好。
如果有人需要计算非常精确的程序运行时间,那还要考虑程序的缓存问题,当然有时候由于程序执行的无序性还会导致程序所得的周期数不一样,在这样的情况下可以用汇编的cupid指令来强制使前期的操作执行完成。
如果想更加深入可以参照以下文章: