You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何排除等待时间,精准测量Python函数实际运行时长?

解决装饰器误计弹窗等待时间的方案

你遇到的问题核心是:原装饰器用的time()统计的是真实流逝的墙钟时间,会把用户关闭弹窗的空闲等待时间也计入其中。要只测量函数实际占用CPU运行的时长,换成time.process_time()即可——这个函数仅统计当前进程实际使用CPU的时间,自动排除用户交互等待、休眠、IO阻塞这类非执行状态的时间。

修改后的装饰器代码如下:

from functools import wraps
from time import process_time

def timing(f):
    @wraps(f)
    def wrap(*args, **kw):
        ts = process_time()
        result = f(*args, **kw)
        te = process_time()
        print(f'func:{f.__name__} args:[{args}, {kw}] CPU运行时长: {te-ts} sec')
        return result
    return wrap

直接替换原代码中的time()为process_time()就能解决问题。如果你的函数涉及多线程/多进程场景,或者需要更高精度的计时,也可以使用process_time_ns()(返回纳秒级CPU时间),效果是一致的。

内容的提问来源于stack exchange,提问作者smyril

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 21:05:24