在统计python代码 执行速度时要使用到time包,在查找相关函数时有time.time()和time.clock()两个函数可供选择。而两者是有区别的:

cpu 的运行机制:cpu是多任务的,例如在多进程的执行过程中,一段时间内会有对各进程被处理。一个进程从开始到结束其实是在这期间的一些列时间片断上断断续续执行的。所以这就引出了程序执行的cpu时间(该程序单纯在cpu上运行所需时间)和墙上时钟wall time。
time.time()是统计的wall time(即墙上时钟),也就是系统时钟的时间戳(1970纪元后经过的浮点秒数)。所以两次调用的时间差即为系统经过的总时间。
time.clock()是统计cpu时间 的工具,这在统计某一程序或函数的执行速度最为合适。两次调用time.clock()函数的差值即为程序运行的cpu时间。

import time

def test():
a = 0
for i in range(1,10000):
a *=i t0 = time.time()
t1 = time.clock()
test()
t_0 = time.time()
t_1 = time.clock()
print('系统时间:',t_0-t0)
print('CPU时间:',t_1-t1)

运行结果:

系统时间: 0.0005710124969482422
CPU时间: 0.000563000000000001

可以发现,CPU时间比系统时间短,这是合理的,系统时间包含CPU时间,需要指出的是,程序运行期间的等待时间是不计算在CPU时间内的,如下:

import time

def test():
a = 0
for i in range(1,10000):
a *=i t0 = time.time()
t1 = time.clock()
test()
time.sleep(2)
t_0 = time.time()
t_1 = time.clock()
print('系统时间:',t_0-t0)
print('CPU时间:',t_1-t1)

运行结果:

系统时间: 2.0023741722106934
CPU时间: 0.0005949999999999983

python time包中的time.time()和time.clock()的区别的更多相关文章

  1. python 一个包中的文件调用另外一个包文件 实例

    python不同文件夹中模块的引用调用顺序,被调用的模块中①有类的 模块.类().方法()   ②无类的:模块.方法() test包中testIm.py 调用 test1包中testIm1.py中的方 ...

  2. Python工程文件中的名词解释---Module与Package的区别

    当我们在已有的Python工程文件中创建新的内容是,通常会有两种类型文件供你选择---Module和Package,对于初学者来说会搞不清楚这两种文件直接的关系.这里就来解释一下这两者之间的关系. M ...

  3. Python模块包中__init__.py文件的作用

    转载自:http://hi.baidu.com/tjuer/item/ba37ac4ce7482a0f6dc2f08b 模块包: 包通常总是一个目录,目录下为首的一个文件便是 __init__.py. ...

  4. python 常见包中的不定参数

  5. python 读写文件中 w与wt ; r与rt 的区别

    w,r,wt,rt都是python里面文件操作的模式.w是写模式,r是读模式.t是windows平台特有的所谓text mode(文本模式),区别在于会自动识别windows平台的换行符.类Unix平 ...

  6. sklearn.svm包中的SVC(kernel=”linear“)和LinearSVC的区别

    参考:https://stackoverflow.com/questions/45384185/what-is-the-difference-between-linearsvc-and-svckern ...

  7. python josn包

    Python josn包中的编码与解码方法 对于Python数据类型进行编码解码 json.dumps  对python的数据类型进行json格式编码 :(将dict转为json格式) eg: imp ...

  8. python已安装了一个包,但是导入包中的模块时报错没有这个包

    执行import sys; print(sys.path)查看python搜索路径,确保自己的模块在python搜索路径中 python的搜索路径与包(package) python的搜索路径其实是一 ...

  9. Python包中 __init__.py文件的作用

    原创连接 https://www.cnblogs.com/AlwinXu/p/5598543.html Python包中 __init__.py文件的作用 在创建python包的过程中,IDE都会在包 ...

随机推荐

  1. JavaScript:for循环中let与var变量的绑定

    碰到一道题: for(var i=0;i<2;i++){ setTimeout(function(){ console.log(i); },100) } //输出结果为:2 2 for(let ...

  2. Qt之圆角阴影边框

    Qt的主窗体要做出类似WIN7那种圆角阴影边框,这一直是美工的需求. 这里是有一些门道的,尤其是,这里藏着一个很大的秘密. 这个秘密是一个QT的至少横跨3个版本,存在了2年多的BUG... https ...

  3. Android 蓝牙开发(1)

    普通蓝牙设备官方文档 Android 平台包含蓝牙网络堆栈支持,凭借此支持,设备能以无线方式与其他蓝牙设备交换数据.应用框架提供了通过 Android Bluetooth API 访问蓝牙功能的途径. ...

  4. [PHP] 持续交付Jenkins安装

    1.下载并运行 Jenkins下载 Jenkins.http://mirrors.jenkins.io/war-stable/latest/jenkins.war 打开终端进入到下载目录.运行命令 j ...

  5. 学习CNN系列一:原理篇

    CNN的发展历程: 1962年,卷积神经网络的研究起源于Hubel和Wiesel研究毛脑皮层的发现局部互连网络可以有效降低反馈神经网络的复杂性. 1980年,CNN的第一个实现网络:Fukushima ...

  6. node exporter

    在prometheus中负责数据汇报的程序统一叫做exporter; 负责主机信息收集的node_exporter 可以利用prometheus的static_configs来拉取node_expor ...

  7. luoguP3531 [POI2012]LIT-Letters

    (https://www.luogu.org/problem/P3531) 注意编号 #include<cstdio> #include<algorithm> #include ...

  8. c# WF 第11节 RichTextBox

    本节内容: 1:RichTextBox的简介: 2:实例 1:RichTextBox的简介: 2:实例 实现实例: 1个RichTextBox  2个label  9 个button 步骤一: 步骤2 ...

  9. Octave教程

    Windows安装Octave http://wiki.octave.org/Octave_for_Microsoft_Windows 基本操作(Basic Operations) octave:1& ...

  10. MySQL学习笔记4——DQL

    DQL(数据查询语言) 一.基本查询 1.字段(列)控制1)查询所有列SELECT * FROM 表名; ->"*"表示查询所有列 2)查询指定列SELECT 列1 [, 列 ...