跳转到主要内容

Twisted的延迟感知分析器

项目描述

https://travis-ci.org/flowroute/twisted-theseus.png

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-pp27-none-any.whl (9.3 kB 查看哈希值)

上传时间 PyPy

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面