• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python 统计代码耗时的几种方法分享

    时间戳相减

    在代码执行前后各记录一个时间点,两个时间戳相减即程序运行耗时。

    获取时间戳time.time()

    import time
    
    start_time = time.time()
    sum = 0
    for i in range(100000000):
        sum += i
    print(sum)
    
    end_time = time.time()
    print("耗时: {:.2f}秒".format(end_time - start_time))
    
    输出:
    4999999950000000
    耗时: 10.53秒

    获取当前日期 datetime.datetime.now()

    import datetime
    
    start_time = datetime.datetime.now()
    sum = 0
    for i in range(100000000):
        sum += i
    print(sum)
    
    end_time = datetime.datetime.now()
    print("耗时: {}秒".format(end_time - start_time))

    装饰器

    装饰器是一个装饰函数的函数,能够在不改变函数源码和函数调用方式的情况下给函数增加新的功能。很多时候统计函数的耗时,可以使用装饰器实现。

    import time
    
    def get_time(f):
    
        def inner(*arg,**kwarg):
            s_time = time.time()
            res = f(*arg,**kwarg)
            e_time = time.time()
            print('耗时:{}秒'.format(e_time - s_time))
            return res
        return inner
    
    @get_time
    def test():
        time.sleep(2)  # 模拟运行2s
    
    test()
    
    输出:
    耗时:2.000781536102295秒

    timeit模块

    timeit 模块提供了测量 Python 小段代码执行时间的方法,可以在命令行界面直接使用,也可以通过导入模块进行调用。

    语句执行 number 次的时间

    #导入timeit.timeit
    from timeit import timeit
    #看x=1的执行一次的时间(number可以省略,缺省为1000000)
    t1 = timeit('x=1', number=1)
    print(t1)
    #一个列表生成器的执行时间,执行10000次:
    t2 = timeit('[i for i in range(100) if i%2==0]', number=10000)
    print(t2)
    
    输出:
    4.0000000001150227e-07
    0.04841430000000002

    计算函数的执行时间

    from timeit import timeit
    def func(a):
        sum = 0
        for i in range(a):
            sum += i
        return sum
    
    # timeit(函数名_字符串,运行环境_字符串,number=运行次数)
    t = timeit('func(10000000)', 'from __main__ import func', number=1)
    print(t)
    输出:
    0.4887406

    重复调用 timeit()

    repeat() 方法相当于持续多次调用 timeit() 方法并将结果返回为一个列表。repeat 参数指定重复的次数,number 参数传递给 timeit() 方法的 number 参数。

    import timeit
    def func(a):
        sum = 0
        for i in range(a):
            sum += i
        return sum
    
    # timeit(函数名_字符串,运行环境_字符串,number=运行次数,repeat=重复次数,repeat=5)
    t = timeit.repeat('func(100000)', 'from __main__ import func', number=100, repeat=5)
    print(t)

    cProfile性能分析工具

    cProfile(语言编写的测试模块)是一个标准库内建的性能分析工具,可以在标准输出中看到每一个函数被调用的次数和运行的时间,从而找到程序的性能瓶颈,从而有针对性的进行性能优化。

    Python代码性能分析之cProfile

    import cProfile
    def func(a):
        sum = 0
        for i in range(a):
            sum += i
        return sum
    if __name__ == '__main__':
        cProfile.run("func(10000000)")

    以上就是python 统计代码耗时的几种方法分享的详细内容,更多关于python 统计代码耗时的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • Python 统计数据集标签的类别及数目操作
    • Python统计可散列的对象之容器Counter详解
    • Python 统计列表中重复元素的个数并返回其索引值的实现方法
    • Python实战之单词打卡统计
    • python之cur.fetchall与cur.fetchone提取数据并统计处理操作
    • python自动统计zabbix系统监控覆盖率的示例代码
    • Python统计列表元素出现次数的方法示例
    • python统计RGB图片某像素的个数案例
    • Python jieba 中文分词与词频统计的操作
    • 利用Python3实现统计大量单词中各字母出现的次数和频率的方法
    • 使用Python 统计文件夹内所有pdf页数的小工具
    • python 统计list中各个元素出现的次数的几种方法
    • python调用百度AI接口实现人流量统计
    • Python代码覆盖率统计工具coverage.py用法详解
    • python 爬虫基本使用——统计杭电oj题目正确率并排序
    • 利用python汇总统计多张Excel
    • python统计mysql数据量变化并调用接口告警的示例代码
    • 用python实现监控视频人数统计
    上一篇:Python读取文件夹下的所有文件实例代码
    下一篇:python 遍历磁盘目录的三种方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python 统计代码耗时的几种方法分享 python,统计,代码,耗时,的,