你写的Python代码到底多快?这些测试工具了解了解

25 篇文章 19 订阅
订阅专栏

当我们写完一个脚本或一个函数,首先能保证得到正确结果,其次尽可能的快(虽然会说Py慢,但有的项目就是得要基于Py开发)

本期将总结几种获取程序运行时间的方法,极大的帮助对比不同算法/写法效率

插播,更多文字总结·指南·实用工具·科技前沿动态第一时间更新在公粽号【啥都会一点的研究生

使用系统命令

每个操作系统都有自己的方法来算程序运行的时间,比如在Windows PowerShell中,可以用 Measure-Command 来看一个Python文件的运行时间

Measure-Command {python tutorial.py}

在这里插入图片描述
在Ubuntu中,使用time命令

time python tutorial.py

如果我们除了看整个 Python 脚本的运行时间外还想看看局部运行时间咋整

使用 IPython 的 Magic Command

如果你使用过如Jupyter Notebook等工具,他们用到了一个叫做 IPython 的交互式 Python 环境

在 IPython 中,有一个特别方便的命令叫做 timeit

对于某行代码的测量可以使用%timeit
在这里插入图片描述
对于某一个代码单元格的测量,可以使用%%timeit
在这里插入图片描述

使用timeit

如果不用IPython咋整,没关系,已经很厉害了,Python 有一个内置的timeit模块,可以帮助检测小段代码运行时间

可以在命令行界面运行如下命令

python -m timeit '[i for i in range(100)]'

使用 timeit 测量执行此列表推导式所需的时间,得到输出

200000 loops, best of 5: 1.4 usec per loop

此输出表明每次计时将执行200000次列表推导,共计时测试了5次,最好的结果是1.4毫秒

或者直接在Python中调用

import timeit

print(timeit.timeit('[i for i in range(100)]', number=1))

对于更复杂的情况,有三个参数需要考虑:

  • stmt:待测量的代码片段,默认是 pass
  • setup:在运行 stmt 之前执行一些准备工作,默认也是 pass
  • number:要运行 stmt 的次数

比如一个更复杂的例子

import timeit

# prerequisites before running the stmt
my_setup = "from math import sqrt"

# code snippet we would like to measure
my_code = '''
def my_function():
    for x in range(10000000):
        sqrt(x)
'''

print(timeit.timeit(setup=my_setup,
                    stmt=my_code,
                    number=1000))
# 6.260000000000293e-05

使用time模块

Python中内置的time模块相信都不陌生,基本的用法是在待测代码段的起始与末尾分别打上时间戳,然后获得时间差

import time

def my_function():
    for i in range(10000000):
        pass
start = time.perf_counter()
my_function()
print(time.perf_counter()-start)
# 0.1179838

我经常使用time.perf_counter()来获取时间,更精确,在之前的教程中有提过

time模块中还有一些其他计时选择

  • time.timer():获取当前时间
  • time.perf_counter():计算程序的执行时间(高分辨率)
  • time.monotonic():计算程序的执行时间(低分辨率)
  • time.process_time():计算某个进程的CPU时间
  • time.thread_time():计算线程的CPU时间

假如我们需要在多个代码段测试运行时间,每个首尾都打上时间戳再计算时间差就有点繁琐了,咋整,上装饰器

import time


def log_execution_time(func):
    def wrapper(*args, **kwargs):
        start = time.perf_counter()
        res = func(*args, **kwargs)
        end = time.perf_counter()
        print(f'The execution of {func.__name__} used {end - start} seconds.')
        return res

    return wrapper


@log_execution_time
def my_function():
    for i in range(10000000):
        pass


my_function()
# The execution of my_function used 0.1156899 seconds.

如上例所示,这样就使得代码肥肠干净与整洁

以上就是本期全部内容,期待点赞在看,我是啥都生,下次再见

将Linux curl命令转换为windows平台的Python代码
weixin_43178406的博客
03-15 9万+
本文主要介绍了将Linux curl命令转换为windows平台的Python代码,希望能对使用curl命令的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案
Python接口自动化测试实战篇⑥〗- 接口抓包工具 Chrome 的使用
热门推荐
易编橙 · 终身成长社群,相遇已是上上签!
05-28 4万+
在之前的章节我们介绍了 [接口测试到底是什么] 以及它的一些基础定义,从该章节开始将正式开始怎么样去做接口测试。实际上现实生活中做任何事情都需要做一些准备工作,做接口测试也是如此。...
python代码耗时优化,你知道了吗?
chenchen5152的博客
11-26 1651
python代码耗时优化背景交代第一版第二版第三版第四版第五版总结 背景交代 团队做大学英语四六级考试相关服务。业务中有一个care服务,购买了care服务考试不过可以全额退款,不过有一个前提是要完成care服务的任务,比如坚持背单词N天,完成指定的试卷。 在这个背景下,接到一个需求,需求本身比较复杂,简化出与本篇主题相关的需求是:当2021年6月的四六级考试完成之后,要统计出两种用户数据: 完成care服务的用户 没有完成care的用户 所以简化的逻辑就是要在所有的用户中区分出care完成用户和ca
Python计数代码执行速度
weixin_45642669的博客
03-10 1597
python计数代码执行速度 安装插件tqdm,可以看代码的执行速度代码之前加入一个装饰器 import time import timeit from loguru import logger def time_count(func): def test(index): start_time = time.time() func(index) end_time = time.time() logger.debug(end_ti
python代码运行效率_检测Python程序的执行效率
weixin_39604557的博客
11-22 389
无意中被问到代码执行效率的问题,那就总结一下检测代码执行效率的几种方式:一、装饰器在函数上加装饰器,来得到函数的执行时间。def cst_time(func, *args, **kwargs):def wrapper(*args, **kwargs):start = time.time()ret = func(*args, **kwargs)end = time.time()timestrap =...
学习笔记 —— python代码耗时及内存占用测试方法 以及一些零碎的python小工具
~勿据散客~的博客
01-27 5598
主要有三种方法,各自的时钟间隔如下:timeit).注:最后一个是以ns为单位的,前两个是以s为单位的10e8。
如何知道代码跑得多慢?
woaimx_1314的博客
05-22 172
它的内部实现原理并不难。测算时间,就是记录(用变量保存)开始时间,并在结束时计算一下时间差。进度功能,则是记录上一次的输出时间和进度,下次输出时作对比。暂停功能,则是用两个变量分别记录工作和等待的耗时累加值。至于如何知道自己是不是“最外层”,则是用一个static变量来保存当前的层数。如果是0就是最外层。它的每一处实现,都是平淡无奇。借用棋类的话,就是“通盘无妙手”。关键是实用。
如何在 Win上 Python 代码?最佳攻略来袭
SixStar_FL的博客
08-03 1906
在 Windows 上怎样做 Python 开发?是像大神那样使用纯文本编辑器,还是用更加完善的 IDE?到底是用自带的命令行工具,还是需要装新的 Terminal?本文将带你了解如何利用微软官方维护的 MS Terminal 与 VS Code,来为 Python 开发保驾护航。...
c#代码python代码工具_Python至C#代码转换
weixin_29248653的博客
01-12 2682
我正在尝试将下面的python代码行转换为C#:encoded_c = chr(abs(ord(string[i]) - ord(key_c) % 256))这是我在C#中得到的:char encoded_c=(char)Math.Abs((int)decodedString[i] - (int)key_c % 256);但是,它不会返回相同的结果。我认为这与(int)强制转换有关,但是当我尝试搜...
Python WEB 自动化测试实战篇②〗- WEB自动化测试发展史与自动化工具选型
易编橙 · 终身成长社群,相遇已是上上签!
06-05 4万+
今天来跟大家聊一聊软件自动化测试工具的历史演进,一起来探讨一下现在的自动化架构应该怎样去设计和实现。
Python代码耗时统计
l475378094的博客
01-28 1046
time() 函数返回的时间是相对于1970年1月1日的秒数,而 perf_counter() 函数返回的是CPU时钟计数值,单位是秒。time() 函数的精度通常是1秒,而 perf_counter() 函数的精度通常是纳秒级别。time() 函数的返回值可以被修改,而 perf_counter() 函数的返回值不能被修改。是timeit的repeat版,可以指定重复timeit的次数,默认是5次,然后返回一个数组。因此,如果需要测量程序的执行时间,建议使用perf_counter()函数。
检测Python程序执行效率及内存和CPU使用的7种方法
专注于 机器学习 分布式计算
12-20 5006
检测Python程序执行效率及内存和CPU使用的7种方法   在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率。但该怎么做呢? 首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长。接着,就针对这一部分进行优化。 同时,还需要控制内存和CPU的使用,这样可以在另一方面优化代码。 因此,在这篇文章中我将介绍7
五个python性能检测工具,助你优化程序运行效率
人生苦短, 还不用Python?
12-31 2563
python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率。
Python 函数耗时异常自动化监控实战教程
q_776355102的博客
07-06 1036
内容 隐藏一、性能数据函数耗时采集及可视化报表生成1. 性能数据文件保存(cProfile)2. 详细性能数据读取查看二、生成函数调用栈结构图(gprof2dot)教程三、性能分析及优化实战四、耗时异常自动化监控1. 正态分布数据方案2. Turkey 箱型图方案本文内容包括。在做Python优化的时候,可以借助cProfile生成性能数据文件,通过pstats获取详细耗时分布数据,结合gprof2dot脚本生成函数调用栈结构图做可视化分析,提高性能分析的效率。
KEIL5如何测量程序代码段运行时间
liuyanjun__的博客
06-14 7384
测量代码运行时间
提升Python程序运行效率的方法总结
夜空下的凝视
04-09 1万+
使用Python中的timeit函数测试程序运行效率: def timeit(stmt="pass", setup="pass", timer=<built-in function perf_counter>, number=1000000, globals=None): """Convenience function to create Timer ob...
Python计算程序执行效率的三种方式
小涛Dirge
07-21 2424
本文主要针对测试PythonPythonic的法的运行效率的三种方式 方式一 import datetime if __name__=='__main__': startTime = datetime.datetime.now() arr = [] for i in range(10000000): arr.append(i) endTi...
crontab定时执行表达式法与crontab在线测试工具推荐
helloxiaozhe的博客
03-23 8844
crontab定时执行表达式法与crontab在线测试工具推荐    熟悉Unix和Linux的朋友都知道Crontab表达式,通过crontab指令可以周期性调用或执行某个程序。    但是大家完crontab表达式后,心里总是担心表达式的不对,可以又没法去验证。比如你的周期定的比较长,一天一周一月或者更久,那么等到那个时候通过去看程序是否运行来判断表达式的正确性是不实际的。这里为大家推荐...
python代码运行效率高吗,python效率那么差吗
最新发布
2401_82891570的博客
02-27 823
随着国内对人工智能领域发展的大力支持,Python编程语言成为国内使用增长率的最大的编程语言。越来越多的人加入Python的学习行列,企业对Python的使用也越来越普遍。Python能够让你在端时间内通过少量代码,实现大量的操作。这里小编整理了6个Python编程技巧,帮你提高Python的运行效率。
Python代码一个ui自动化测试工具
03-31
但我可以给你提供一些Python UI自动化测试工具的示例。 1. PyAutoGUI:PyAutoGUI是一个跨平台的Python库,用于模拟人类的鼠标和键盘操作,可以用于自动化图形用户界面的测试。 2. Selenium:Selenium是一个流行的...
写文章

热门文章

  • 李宏毅2021&2022机器学习 60909
  • 整理了几个100%会踩的Python细节坑,提前防止脑血栓 15403
  • 人工智能算法面试大总结-总目录 14657
  • 保姆级使用PyTorch训练与评估自己的MobileNetV3网络教程 11858
  • 你还在手动对比代码差异?这些高质量工具太香了 10694

分类专栏

  • 深度学习|机器学习面试总结 付费 27篇
  • AI资讯 28篇
  • Python 25篇
  • 硬核干货 30篇
  • 论文 3篇
  • 图像分类 44篇
  • 图像增强 2篇
  • 环境搭建 6篇
  • c++ 3篇

最新评论

  • 保姆级使用PyTorch训练与评估自己的MobileNetV3网络教程

    西伯利亚猹: 你好,请问你成功了么?

  • 保姆级使用PyTorch训练与评估自己的MobileNetV3网络教程

    西伯利亚猹: 请问保存成功了么

  • 保姆级使用PyTorch训练与评估自己的EfficientNet网络教程

    lalaland0825: 谢谢您耐心的教学,对我的帮助十分大

  • 保姆级使用PyTorch训练与评估自己的ResNet网络教程

    大鱼背不动你了: 请问解决了吗?我的也是正确率特别低

  • 保姆级使用PyTorch训练与评估自己的MobileNetV3网络教程

    waxiyangyang: 请问单张图像检测没有结果这个问题解决了吗?求指教,如果是批量检测怎么办?

最新文章

  • 天津大学推出“AI学长”
  • 英伟达更新显卡LOGO!
  • 中移动出手,最大单集群智算中心来了!
2024
09月 3篇
08月 6篇
07月 5篇
06月 5篇
05月 7篇
04月 4篇
03月 7篇
02月 4篇
01月 6篇
2023年47篇
2022年89篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啥都生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家鹤壁人物玻璃钢雕塑武定宇雕塑玻璃钢东方韵艺术玻璃钢动漫卡通雕塑透明玻璃钢雕塑工艺水泥玻璃钢花盆模具合肥批发玻璃钢雕塑询问报价湖南卡通造型玻璃钢雕塑厂家邯郸玻璃钢雕塑定制无锡商场主题美陈营口玻璃钢座椅雕塑金昌彩色玻璃钢雕塑金昌大型玻璃钢雕塑制作遵义玻璃钢座椅雕塑价格玻璃钢雕塑不喷清漆商场六一美陈图片大全保山玻璃钢圆门头雕塑玻璃钢雕塑的质量检验标准江西人物玻璃钢雕塑优势蜗牛玻璃钢卡通雕塑定做玻璃钢道具雕塑出租园林玻璃钢动物雕塑推荐厂家河南仿铜玻璃钢雕塑销售电话山东仿铜玻璃钢雕塑定做价格呈贡玻璃钢雕塑设计多少钱商场玻璃钢ip雕塑海西玻璃钢雕塑厂家品牌安徽天桥玻璃钢花盆哪家好漳州商场美陈金昌大型玻璃钢雕塑多少钱兰州玻璃钢雕塑定做香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化