python的统计分析

statprof的Python项目详细描述


这个包为python提供了一个简单的统计分析器。

python的默认profiler已经lsprof好几年了。这是 一个instrumenting分析器,这意味着它在 感兴趣的行动。对于lsprof,它在函数入口处运行 然后退出。这有问题:由于频繁 采样,并且它对函数内的热点是盲的。

相反,statprof定期对调用堆栈进行采样(通过 默认情况下,每秒1000次),并正确跟踪行号 函数中。这意味着如果你有一个50行函数 包含两个热循环,statprof可能会同时报告它们 准确地说。

<;b>;注意<;b>;:此软件包在Windows上尚不起作用!见 下面是实现和可移植性的详细说明。

基本用法

statprof开始很容易:

import statprof

statprof.start()
try:
my_questionable_function()
finally:
statprof.stop()
statprof.display()

要获得更全面的帮助,请运行pydoc statprof

便携性

因为statprof使用unix的itimer信号工具,所以它没有 当前在Windows上工作。(提高可移植性的补丁将是 非常欢迎。)

实施说明

statprof探查器通过设置unix分析信号来工作 在调用中定义的时间间隔之后离开 reset()。当信号触发时,将运行一个采样例程 查看正在执行的当前过程,然后向上爬行 堆栈,对于遇到的每个帧,都会增加该帧的 代码对象的样本计数。注意,如果遇到过程 在一个给定的堆栈上多次,它只被计数一次。之后 采样完成后,探查器将探查计时器重置为激发 在适当的时间间隔后再次。

同时,profiler通过os.times()跟踪CPU的数量 时间(系统和用户——这也是itimer_prof跟踪的内容) 当代码在start()/stop()中执行时经过 封锁。

探查器还尝试(尽可能)避免计数或 为自己的代码计时。

历史记录

这个包裹原来是 [作者:安迪·温戈](http://wingolog.org/archives/2005/10/28/profiling)。 它由alex frazer移植到现代python,并由 杰夫·穆泽拉尔。目前的维修人员是布莱恩·奥沙利文 <;bos@serpentine.com>;。

报告错误,提供修补程序

该软件包的当前维护者是bryan o'sullivan <;bos@serpentine.com>;。

请使用 [github问题跟踪器](https://github.com/bos/statprof.py/issues)。

如果你想贡献补丁,请做-源是在 Github,所以请发出一个请求。

$ git clone git://github.com/bos/statprof.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Android Wifi中筛选相同的SSID?   Java中重写接口中异常处理的泛型   java“无效转义序列(有效的是\b\t\n\f\r\”\“\”\)”语法错误   使用JNDI的java NameReadyBoundException   java如何在这个程序上执行算法   java为什么我的应用程序在调试时崩溃而应用程序停止?   Java:while循环未检测到中断条件,但如果块检测到   java如何快速使用jfreechart创建的折线图   java将输入放入JSTL会话变量,以便稍后在屏幕上显示   java在spring boot中加载外部JAR   java Apache NiFi无法使用ojdbc6连接到Oracle 12c。jar或ojdbc8。罐子   java解释StringToWordVector()Weka的输出   java charAt()找不到符号   使用mpjexpress的java阅读控制台输入