#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 微秒
可以看到,代码执行时间超过某个值后才有时间,不适合短小时间测量
|