Twisted的延迟感知分析器
项目描述
twisted-theseus
Python代码的延迟感知分析器。
虽然 cProfile 是一个非常有用的实用程序,但它仅限于记录 同步 执行时间。通常,返回Deferred的函数会非常快速返回,而它返回的Deferred可能不会在几秒或几分钟内触发。这就是thesius发挥作用的地方:任何返回Deferred的函数都将由thesius跟踪。从Deferred返回到触发的时间将被测量并记录,连同函数的调用堆栈。
用法
thesius的公共接口是一个名为Tracer的类。要开始
from theseus import Tracer t = Tracer() t.install()
这足以开始跟踪执行。最终,统计数据必须写入磁盘
with open('callgrind.theseus', 'wb') as outfile: t.write_data(outfile)
输出以 callgrind格式 编写,这意味着可以使用标准工具来解释结果,例如 kcachegrind。
如果任何时候Tracer不再有用,它可以被卸载以停止跟踪
t.uninstall()
此外,thesius还了解 inlineCallbacks,并将重写调用堆栈以使其看起来“正确”。例如,给定以下代码
from twisted.internet import defer, task @defer.inlineCallbacks def func(reactor): yield task.deferLater(reactor, 1, lambda: None) task.react(func)
thesius根据的调用堆栈将如下所示(最近调用最后)
__main__ in <module> twisted.internet.task in react __main__ in func
虽然thesius和cProfile都使用了一个 profile hook,但只要cProfile先安装,就可以同时使用这两个分析器。在这种情况下,调用uninstall()将恢复cProfile。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
twisted-theseus-0.14.1.3.tar.gz (28.9 kB 查看哈希值)
构建分发
关闭
twisted-theseus-0.14.1.3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b512afe228ebd60bc25a2a37c45bef97dd998306ccb8d4afb954b5c50f3ff74 |
|
MD5 | 468a0f5244d914acf83ab08aa3633a28 |
|
BLAKE2b-256 | 5322ae90b006419b6d7a0503d98fa3d0be5e3677a2e8906089b737de48d66f9c |
关闭
twisted_theseus-0.14.1.3-pp27-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7edc3fb7e58d3707c51d786d8acb5b305b7bc3a11d3b00347608a30ee7b814a1 |
|
MD5 | 0d52f7274212df36fce6b5b322068b41 |
|
BLAKE2b-256 | 268cef08bbf40321616c7ca39f240d7d9d2187d7582fc95ed51da466a46afe45 |