正在阅读:VC++通过汇编获取代码运行时间VC++通过汇编获取代码运行时间

2004-06-17 12:14 出处:CSDN 作者:hcj2002 责任编辑:linjixiong

     如何获得程序或者一段代码运行的时间?你可能说有专门的程序测试工具,确实,不过你也可以在程序中嵌入汇编代码来实现。

     在Pentium的指令系统中有一条指令可以获得CPU内部64位计数器的值,我们可以通过代码两次获取该计数器的值而获得程序或代码运行的时钟周期数,进而通过你的cpu的频率算出一个时钟周期的时间,从而算出程序运行的确切时间。

    我们通过指令TDSIC来获得cpu内部计数器的值,指令TDSIC返回值放在EDX:EAX中,其中EDX中存放64位寄存器中高32位的值,EAX存放第32位的值.

    下面看看实现的代码:



//用汇编实现获取一段代码运行的时间

#include<iostream>

using namespace std;

void GetClockNumber (long high, long low);
void GetRunTime();
 
int main()
{      
 
 long HighStart,LowStart,HighEnd,LowEnd;
 long numhigh,numlow;
 //获取代码运行开始时cpu内部计数器的值
 __asm             
 {
  RDTSC
  mov HighStart, edx
  mov LowStart, eax
 }
 for(int i= 0; i<100000; i++ )
 {
             for(int i= 0; i<100000; i++ )
      {
      
      }
 }


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品