当前位置: 首页 > news >正文

python 代码计时

函数计时——函数装饰器

from functools import wraps
import time

def func_timer(function):
    '''
    用装饰器实现函数计时
    :param function: 需要计时的函数
    :return: None
    '''
    @wraps(function)
    def function_timer(*args, **kwargs):
        print('[Function: {name} start...]'.format(name = function.__name__))
        t0 = time.time()
        result = function(*args, **kwargs)
        t1 = time.time()
        print('[Function: {name} finished, spent time: {time:.2f}s]'.format(name = function.__name__,time = t1 - t0))
        return result
    return function_timer

@func_timer
def test():
    time.sleep(1.5)


if __name__ == '__main__':
    test()
'''
[Function: test start...]
[Function: test finished, spent time: 1.50s]
'''

代码片段计时——上下文管理器

from functools import wraps
import time

class Timer(object):
    '''
    用上下文管理器计时
    '''
    def __enter__(self):
        self.t0 = time.time()

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('[time spent: {time:.2f}s]'.format(time = time.time() - self.t0))


if __name__ == '__main__':
    with Timer() as t:
        print('do something')


相关文章:

  • 如何处理创建DB2工具目录数据库的时候遇到的SQL1005N错误?
  • pandas 查找数据
  • SUN发布JavaFX...
  • ConceptNet
  • 如何制作倒影
  • pyecharts 标记指定经纬度
  • Photoshop制作倒影字
  • folium 可视化地理数据
  • geoJson 下载
  • 绚丽多彩Photoshop打造水中倒影
  • 概率图模型
  • PhotoShop的字体安装及制作文字特效
  • 艺术字体 Photoshop滤镜打造线框特效美术字
  • python topk
  • Photoshop 7.0做发光字体
  • 《剑指offer》分解让复杂问题更简单
  • fetch 从初识到应用
  • Flex布局到底解决了什么问题
  • linux学习笔记
  • MySQL QA
  • redis学习笔记(三):列表、集合、有序集合
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • tweak 支持第三方库
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 基于HAProxy的高性能缓存服务器nuster
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 记一次用 NodeJs 实现模拟登录的思路
  • 悄悄地说一个bug
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用parted解决大于2T的磁盘分区
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $(function(){})与(function($){....})(jQuery)的区别
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (转)setTimeout 和 setInterval 的区别
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • ../depcomp: line 571: exec: g++: not found
  • .md即markdown文件的基本常用编写语法
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net 反编译_.net反编译的相关问题
  • .NET 分布式技术比较
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .NET6实现破解Modbus poll点表配置文件
  • .net开发时的诡异问题,button的onclick事件无效
  • @ModelAttribute注解使用
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [android] 切换界面的通用处理
  • [BT]BUUCTF刷题第9天(3.27)
  • [docker]docker网络-直接路由模式
  • [Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具
  • [elastic 8.x]java客户端连接elasticsearch与操作索引与文档