>过你的cpu的频率算出一个时钟周期的时间,从而算出程序运行的确切时间。+ h* j. t" p4 Q5 a' B' H% }
>下面看看实现的代码:
>#include<iostream></P>+ I; B+ I2 \# ^% u
>using namespace std;</P>
>void GetClockNumber (long high, long low);/ |" Y+ j6 a- O: E3 _1 g
> 这样通过一条简单的汇编指令就可以获得程序或一段代码的大概时间,不过并不能得到运行的确切时间,因为即使去掉中间的循环,程序也会有个运行时间,</P>9 u D- J% X3 _8 ~8 J6 H! s
>因为在第一次取得计数器的值后,有两条汇编指令mov HighStart, edx mov LowStart, eax这两条指令当然也有运行时间 ,当然你可以减去这两条指令的运</P>
>行时间(在1.1G的机子上是3e-8s),这样会更精确一点。^_^$ Y- D( G s3 e" d. H
>没有,最起码你可以学到在VC++中如何嵌入汇编代码以及如何使用32位的寄存器,其实和16位的寄存器一样使用,将来64的也应该一样,只不过位数不同罢了。| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |