Python 中Time 模块
python的time内置模块是一个与时间相关的内置模块,很多人喜欢用time.time()获取当前时间的时间戳,利用程序前后两个时间戳的差值计算程序的运行时间,如下:
1.使用time.time()
import time
T1 = time.time()
#______假设下面是程序部分______
for i in range(100*100):
pass
T2 = time.time()
print('程序运行时间:%s毫秒' % ((T2 - T1)*1000))
# 程序运行时间:0.0毫秒
不要以为你的处理器很厉害,就忽视了一个问题,一万次遍历,时间为0.0毫秒?
下面解决上面的质疑,
2.使用time.clock()
Python time clock() 函数以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)
使用time.clock()更改后的程序查看一下:
import platform
print('系统:',platform.system())
import time
T1 = time.clock()
#______假设下面是程序部分______
for i in range(100*100):
pass
T2 =time.clock()
print('程序运行时间:%s毫秒' % ((T2 - T1)*1000))
# 程序运行时间:0.27023641716203606毫秒
3.使用time.perf_counter()
返回性能计数器的值(以微秒为单位,1秒=1000毫秒;1毫秒=1000微秒)作为浮点数,即具有最高可用分辨率的时钟,以测量短持续时间。它包括在睡眠期间和系统范围内流逝的时间。返回值的参考点未定义,因此只有连续调用结果之间的差异有效。
1秒 = 1000毫秒
1毫秒 = 1000微秒
1微秒 = 1000纳秒
1纳秒 = 1000皮秒
import platform
print('系统:',platform.system())
import time
T1 = time.perf_counter()
#______假设下面是程序部分______
for i in range(100*100):
pass
T2 =time.perf_counter()
print('程序运行时间:%s毫秒' % ((T2 - T1)*1000))
# 系统: Windows
# 程序运行时间:0.3007180604248629毫秒
4.使用time.process_time()
返回当前进程的系统和用户CPU时间总和的值(以小数微秒为单位)作为浮点数。
通常time.process_time()也用在测试代码时间上,根据定义,它在整个过程中。返回值的参考点未定义,因此我们测试代码的时候需要调用两次,做差值。
注意process_time()不包括sleep()休眠时间期间经过的时间。
import platform
print('系统:',platform.system())
import time
T1 = time.process_time()
#______假设下面是程序部分______
for i in range(100*100):
pass
T2 =time.process_time()
print('程序运行时间:%s毫秒' % ((T2 - T1)*1000))
# 系统: Windows
# 程序运行时间:0.0毫秒
写在最后:
建议PC上使用time.perf_counter() 来计算程序的运算时间,特别是测试算法在相邻两帧的处理时间,如果计算不准确,那可能会对算法的速度过于自信。
尤其在嵌入式的板子的开发中,性能的测试中,请仔细选择时间模块,比如某些嵌入式板子会封装专门的模块。
Python 中Time 模块的更多相关文章
- Python中optionParser模块的使用方法[转]
本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- 【转】关于python中re模块split方法的使用
注:最近在研究文本处理,需要用到正则切割文本,所以收索到了这篇文章,很有用,谢谢原作者. 原址:http://blog.sciencenet.cn/blog-314114-775285.html 关于 ...
- Python中的模块介绍和使用
在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...
- python中导入模块的本质, 无法导入手写模块的解决办法
最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...
- Python中time模块详解
Python中time模块详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. ...
- Python中collections模块
目录 Python中collections模块 Counter defaultdict OrderedDict namedtuple deque ChainMap Python中collections ...
- Python中pathlib模块
Python中pathlib模块 Path.cwd():返回当前目录的路径 Path.home():返回当前用户的家目录 Path.stat():返回此路径信息 Path.touch():创建文件 P ...
- Python 中包/模块的 `import` 操作
版权声明:博客为作者原创,允许转载,但必须注明原文地址: https://www.cnblogs.com/byronxie/p/10745292.html 用实例来说明 import 的作用吧. 创建 ...
- 正则表达式与Python中re模块的使用
正则表达式与Python中re模块的使用 最近做了点爬虫,正则表达式使用的非常多,用Python做的话会用到re模块. 本文总结一下正则表达式与re模块的基础与使用. 另外,给大家介绍一个在线测试正则 ...
随机推荐
- 15-TTL与非门
TTL与非门 集成电路有两大类COMOS和TTL(三极管) 电路结构 工作原理 多发射结的三极管,两个输入之间是与的关系 输入低电平 输入高电平 A.B都是高电平 倒置放大 压差大的先导通 T3,T4 ...
- 问题--在C++使用strcpy等函数时发生C4996报错
1.问题如下: C4996:'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To ...
- JMS微服务架构 - 关于事务提交失败,自动重新提交的机制
用JMS编写的微服务,由调用端决定了各个微服务执行时,是否需要保持事务的一致性. 也就是RemoteClient在调用微服务方法前,先调用BeginTransaction明确后面所调用的微服务需要保持 ...
- [转帖]TiDB升级、TiFlash测试及对比ClickHouse
原创 NewSQL 作者:o烟雨潇潇o 时间:2020-05-13 11:53:16 4418 0 TiDB升级.TiFlash测试及对比ClickHouse ...
- [转帖]Python连接Oracle数据库进行数据处理操作
https://www.dgrt.cn/a/2259443.html?action=onClick 解决以下问题: Python连接Oracle数据库,并查询.提取Oracle数据库中数据? 通过Py ...
- [转帖]Nginx Ingress 高并发实践
概述 Nginx Ingress Controller 基于 Nginx 实现了 Kubernetes Ingress API,Nginx 是公认的高性能网关,但如果不对其进行一些参数调优,就不能充分 ...
- [转帖]“高密度核心”的角逐 —— AMD Bergamo SoC & Zen 4c 前瞻
https://zhuanlan.zhihu.com/p/585469720 最近这段时间一直在关注Bergamo和Zen 4c,但遗憾的是Genoa的发布会并没有提到太多的Bergamo细节.不过这 ...
- [转帖]013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单 (chmod、chgrp、chown)
https://my.oschina.net/u/3113381/blog/5435014 01 一图详解「ls -l」 02 两种符号区分表示文件和目录 -(横线) # 表示非目录文件 d # ...
- 隐私计算之多方安全计算(MPC,Secure Multi-Party Computation)
作者:京东科技隐私计算产品部 杨博 1.背景 如今,组织在收集.存储敏感的个人信息以及在外部环境(例如云)中处理.共享个人信息时, 越来越关注数据安全.这是遵守隐私法规的强需求:例如美国加利福尼亚 ...
- Vue2 里如何优雅的清除一个定时器
绝大多数人清除定时器的方法 <script> export default { data() { return { timer: null } }, mounted() { this.ti ...