非常教程

Python参考手册

调试和分析 | Debugging & Profiling

hotshot

2.2版本中的新功能。

该模块为_hotshotC模块提供了一个更好的接口。Hotshot是现有profile模块的替代品。由于它主要用C编写,因此它应该比现有profile模块的性能影响小得多。

注意

hotshot模块专注于在分析数据时尽量减少开销,代价是数据后处理时间较长。对于常见的用法,建议使用cProfilehotshot不会被维护,并且可能在将来从标准库中删除。

在版本2.5中进行了更改:结果应该比过去更有意义:时序核心包含一个严重错误。

注意

hotshot分析器还没有使用线程工作。如果可能的话,使用无螺纹脚本来运行探查器来测试你感兴趣测量的代码是很有用的。

class hotshot.Profile(logfile[, lineevents[, linetimings]])

分析器对象。参数日志文件是用于记录的配置文件数据的日志文件的名称。参数lineevents指定是为每个源代码行生成事件还是仅在函数调用/返回时生成事件。它默认为0(只有日志函数调用/返回)。参数linetimings指定是否记录时间信息。它默认为1(存储时间信息)。

1.配置文件对象

配置文件对象具有以下方法:

Profile.addinfo(key, value)

将任意标记的值添加到配置文件输出。

Profile.close()

关闭日志文件并终止分析器。

Profile.fileno()

返回探查器日志文件的文件描述符。

Profile.run(cmd)

exec在脚本环境中分析一个-compatible字符串。来自__main__模块的全局变量被用作脚本的全局变量和局部变量。

Profile.runcall(func, *args, **keywords)

分析可调用的单个调用。额外的位置和关键字参数可以传递; 调用的结果被返回,并且允许异常干净地传播,同时确保在出路中禁用分析。

Profile.runctx(cmd, globals, locals)

exec在特定环境中评估一个-compatible字符串。该字符串在分析开始之前编译。

Profile.start()

启动分析器。

Profile.stop()

停止分析器。

2.使用热门数据

2.2版本中的新功能。

该模块将热点分析数据加载到标准的pstatsStats对象中。

hotshot.stats.load(filename)

文件名加载热点数据。返回pstats.Stats类的一个实例。

See also

Module profile profile模块的Stats

3.示例使用

请注意,此示例运行Python“基准”pystones。可能需要一些时间才能运行,并且会生成大量的输出文件。

>>> import hotshot, hotshot.stats, test.pystone
>>> prof = hotshot.Profile("stones.prof")
>>> benchtime, stones = prof.runcall(test.pystone.pystones)
>>> prof.close()
>>> stats = hotshot.stats.load("stones.prof")
>>> stats.strip_dirs()
>>> stats.sort_stats('time', 'calls')
>>> stats.print_stats(20)
         850004 function calls in 10.090 CPU seconds

   Ordered by: internal time, call count

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    3.295    3.295   10.090   10.090 pystone.py:79(Proc0)
   150000    1.315    0.000    1.315    0.000 pystone.py:203(Proc7)
    50000    1.313    0.000    1.463    0.000 pystone.py:229(Func2)
 .
 .
 .

调试和分析 | Debugging & Profiling相关

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法