我用VC++做了一个程序,想计算一下他的运行时间,用微秒计算,应该怎么办?

解决方案 »

  1.   

    有个最快的方法是用奔腾的一个指令,好像是
    rdtfc(?记不清楚了),就可以得到开机以来的时间,最精确无比。
      

  2.   

    /* CLOCK.C: This example prompts for how long
     * the program is to run and then continuously
     * displays the elapsed time for that period.
     */#include <stdio.h>
    #include <stdlib.h>
    #include <time.h>void sleep( clock_t wait );void main( void )
    {
       long    i = 600000L;
       clock_t start, finish;
       double  duration;   /* Delay for a specified time. */
       printf( "Delay for three seconds\n" );
       sleep( (clock_t)3 * CLOCKS_PER_SEC );
       printf( "Done!\n" );   /* Measure the duration of an event. */
       printf( "Time to do %ld empty loops is ", i );
       start = clock();
       while( i-- ) 
          ;
       finish = clock();
       //下面计算时间
       duration = (double)(finish - start) / CLOCKS_PER_SEC;
       printf( "%2.1f seconds\n", duration );
    }/* Pauses for a specified number of milliseconds. */
    void sleep( clock_t wait )
    {
       clock_t goal;
       goal = wait + clock();
       while( goal > clock() )
          ;
    }运行结果:Delay for three seconds
    Done!
    Time to do 600000 empty loops is 0.1 seconds