#include "c1.h" #include <sys/time.h> int main(){ double x,sum=1,sum1; int i,j,n; printf("输入x n:"); scanf("%lf%d",&x,&n); printf("x=%lf, n=%d\n",x,n); struct timeval start,end; gettimeofday(&start, NULL ); //个人代码 for(i=1;i<=n;i++){ sum1 = 1; for(j=1;j<=i;j++) sum1 = sum1*(-1.0/x); sum += sum1; } gettimeofday(&end, NULL ); double timeuse = ( end.tv_sec - start.tv_sec )*1000*1000 + (end.tv_usec - start.tv_usec); printf("秒:%ld ,微秒 : %f\n",end.tv_sec - start.tv_sec,timeuse); return 0; } |
int ftime(timeb*)’ is deprecated #include "c1.h" #include <sys/time.h> int main(){ timeb t1,t2; long t; double x,sum=1,sum1; int i,j,n; printf("输入x n:"); scanf("%lf%d",&x,&n); printf("x=%lf, n=%d\n",x,n); // warning: ‘int ftime(timeb*)’ is deprecated [-Wdeprecated-declarations] ftime(&t1);//求得当前时间 // struct timeval start,end; // gettimeofday(&start, NULL ); //个人代码 for(i=1;i<=n;i++){ sum1 = 1; for(j=1;j<=i;j++) sum1 = sum1*(-1.0/x); sum += sum1; } // gettimeofday(&end, NULL ); ftime(&t2); double timeuse = ( t2.time - t1.time )*1000 + (t2.millitm - t1.millitm); //毫秒 printf("毫秒 : %f\n",timeuse); return 0; } |
time.perf_counter() 是一个高分辨率的计时器,它提供了测量短时间间隔的高精度性能计数器。 这个计数器可以用来测量代码段的执行时间, 其精度通常比 time.time() 更高,并且它的起始点是未定义的, 因此它只适合用来测量时间间隔,不适合用来表示当前时间。 import time # 记录代码开始执行前的时间 start_time = time.perf_counter() # 在这里执行你的代码 # 例如,一个简单的数学计算 result = 0 for i in range(1000): result += i # 记录代码执行结束后的时间 end_time = time.perf_counter() # 计算代码运行的时间差 elapsed_time = end_time - start_time # 输出运行时间 print(f"代码运行时间:{elapsed_time*1e6:.6f} 微秒") #代码运行时间:320.300009 微秒 在这个例子中,elapsed_time 会给出代码执行的总时间,单位是秒,并且保留了小数点后六位,提供了较高的时间精度。time.perf_counter() 通常用于性能测试和基准测试,因为它能够提供更稳定和更精确的时间测量,特别是在比较短的代码运行时间段内。 请注意,time.perf_counter() 的具体实现和行为可能因操作系统和Python解释器的不同而有所差异,但通常它会选择系统上可用的最高精度的计时器。这使得它成为性能测试和基准测试的理想选择 |
import time # 记录代码开始执行的时间 start_time = time.time() # 在这里运行你的代码 # 例如: for i in range(10000): pass # 记录代码结束执行的时间 end_time = time.time() # 计算代码运行时间(秒) elapsed_time = end_time - start_time # 将运行时间转换为微秒级 elapsed_time_microseconds = elapsed_time * 1e6 # 输出运行时间(微秒) print(f"代码运行时间:{elapsed_time_microseconds:.2f} 微秒") |
time.process_time() 是用来测量CPU时间的, 它只计算在CPU上执行的时间,不包括等待I/O操作等非计算密集型任务的时间。 这个方法通常用来度量代码段在CPU上执行的性能。 import time # 记录代码开始执行前的CPU时间 start_time = time.process_time() # 执行你的代码 # 例如,一个简单的循环 for i in range(100000): pass # 记录代码执行结束后的CPU时间 end_time = time.process_time() # 计算代码运行所消耗的CPU时间 elapsed_time = end_time - start_time # 输出运行时间(秒) print(f"代码运行消耗的CPU时间:{elapsed_time*1e6:.6f} 微秒") 代码运行消耗的CPU时间:0.000000 微秒 1000000 代码运行消耗的CPU时间:15625.000000 微秒 可以看到,代码执行时间超过某个值后才有时间,不适合短小时间测量 |