Python中统计函数的运行耗时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import time def time_me(fn): def _wrapper( * args, * * kwargs): start = time.clock() fn( * args, * * kwargs) print "%s cost %s second" % (fn.__name__, time.clock() - start) return _wrapper #这个装饰器可以在方便地统计函数运行的耗时。用来分析脚本的性能是最好不过了。 #这样用: @time_me def test(x, y): time.sleep( 0.1 ) @time_me def test2(x): time.sleep( 0.2 ) test( 1 , 2 ) test2( 2 ) #输出: #test cost 0.1001529524 second #test2 cost 0.199968431742 second |
另一个更高级一点的版本是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import time import functools def time_me(info = "used" ): def _time_me(fn): @functools .wraps(fn) def _wrapper( * args, * * kwargs): start = time.clock() fn( * args, * * kwargs) print "%s %s %s" % (fn.__name__, info, time.clock() - start), "second" return _wrapper return _time_me @time_me () def test(x, y): time.sleep( 0.1 ) @time_me ( "cost" ) def test2(x): time.sleep( 0.2 ) test( 1 , 2 ) test2( 2 ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?