使用另一个装饰器

时间:2017-01-31 10:18:48

标签: python twisted

我正在使用twisted及其装饰器@inlineCallbacks

我正在尝试对使用@inlineCallbacks修饰的方法的执行时间进行基准测试。

我的问题是 - 是否有可能为计算创建一个新的装饰器,或者我应该只将计算添加到方法本身:

@benchmark_performance
@inlineCallbacks
def perform():
    ...

VS

@inlineCallbacks
def perform():
    t1 = time.now()
    ...
    t2 = time.now()
    yield write_to_db(t2-t1)

1 个答案:

答案 0 :(得分:0)

一切都取决于。第一个例子:

@benchmark_performance
@inlineCallbacks
def perform():
    ...

将对perform函数以及inlineCallbacks装饰器的性能进行基准测试。

第二个例子只是标记执行功能的内部功能。

因此,如果要包含inlineCallback(或任何其他装饰器)的性能,请使用第一种方法。如果您只想对执行函数的内部进行基准测试,那么请在较低级别进行。