现象描述:
1、timeclock 在win系统和linux系统下对相同程序的计时结果不一致
2、到底应该用什么时间计时?为什么用timetime与timeclock计时会有那么大的差异
在计算机领域有多种时间。
第一种称作CPU时间或执行时间,用于测量在执行一个程序时CPU所花费的时间。第二种称作挂钟时间,测量执行一个程序时的总时间。挂钟时间也被称作流逝时间或运行时间。与CPU时间相比,挂钟时间通常长些,因为CPU执行测量的程序可能同时还在执行其它程序的指令。
另一个重要概念是所谓的系统时间,由系统时钟测量。系统时间表示计算机系统时间传递的概念。要记住系统时钟是可以由 *** 作系统修改的,就是修改系统时间。
在Unix系统上,timetime的作用与Windows相同,但timeclock的意义不同。
在Unix系统上,timeclock以秒为单位返回当前处理器时间,例如,执行当前线程所花费的CPU时间。而在Windows上,它是以秒为单位的返回自首次调用该函数以来所流逝的系统时间。
以我遇到的Ubuntu系统上运行timetime和timeclock的例子:
timetime()显示系统时间过去大概1秒,而timeclock()显示花费在当前进程上的CPU时间只有于1毫秒。
而win下timetime()和timeclock()显示系统时间都是大致过去了1秒
在测量程序准确性能时应该使用哪一个呢?
这要视情况而定。如果程序运行的系统能够提供足够的资源给程序,例如,一个运行基于Python的web应用程序的web服务器,则使用timeclock()来测量程序会更有意义,因这个web应用程序可能是服务器上的主要程序 。如果程序运行的系统上还同时运行着其它大量程序,则使用timetime()进行测量会更有意义。 如果不是这样,就应该使用基于挂钟的计时器来测量程序的性能,因为这样通常能反应程序的环境。
放结论,一般情况下:
1、win用timeclock或timetime
2、linux 下用timetime 或 datetimedatetimenow()timestamp()
1(重要)https://blogcsdnnet/ao985438294363006/article/details/101349790 Python测量时间,用timetime还是timeclock
#include<stdioh>
#include<timeh>
int
main(void){
int
i;
int
sum=0;
long
n
=
clock();
for(i=0;i<=100;i++){sum=sum+i;}
n
=
clock()-n;
printf("the
sum
from
1
to
100
is
%d
\n",sum);
return
0;}
n的值就是循环运行的时间,但是单位是机器周期,要换为秒的话要除以CLOCKS_PER_SEC,这个是宏定义的变量,可以直接用的
#include “timeh”
//。。。。。。
long start = (long) clock_t clock();
//某函数
long end = (long) clock_t clock();
long interval = start - end;
//这里interval就是你的程序经过的时间了
//C语言。。。这样,当然SDK也可以
//SDK里有timeGetTime()和GetTickCount(),可以实现相同功能,用一个DWORD装住返回值
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)