Skip to content

Time.timeit 应该去除wrapt.dectator 自身的时间 #13

Open
@wztdream

Description

@wztdream

您好,
读过您写的书,收获很大,谢谢。
有一个疑问,如题。Time.timeit利用wrapt.dectator来计算一个函数的执行时间。通常是没有问题的。但是如果是一个嵌套函数,外层函数的计时就是:内层函数执行时间+wrapt 自身执行的时间。如果内层函数被执行n次,那么外层函数的计时时间就多出了n*(wrapt 自身执行时间),这可能导致时间分析不准确。比如下面的例子, outer()的总时间被错误的多计时了(100000000*wrap时间)。不知道有没有办法在wrapt之间进行通讯,来扣除内部wrapt 自身的时间(不是inner函数的执行时间哈)

@timing.timeit()
def inner():
    print("inner")
@timing.timeit()
def outter():
   for i in range(100000000):
        inner()
    print("outer")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions