cProfile Python性能分析工具使用详解

yipeiwu_com6年前Python基础

前言

Python自带了几个性能分析的模块:profile、cProfile和hotshot,使用方法基本都差不多,无非模块是纯Python还是用C写的。本文介绍cProfile。

例子

import time
def func1():
  sum = 0
  for i in range(1000000):
    sum += i
def func2():
  time.sleep(10)

func1()
func2()

运行

python -m cProfile del.py

运行结果

结果分析

执行了6个函数,总共花费了10.138s,按着运行函数名字排序为结果输出。

运行脚本

python -m cProfile -o del.out del.py

这里以模块方式直接保存profile结果,可以进一步分析输出结果,运行

python -c "import pstats; p=pstats.Stats('del.out'); p.print_stats()"

结果(随机)

可以设置排序方式,例如以花费时间多少排序

python -c "import pstats; p=pstats.Stats('del.out'); p.sort_stats('time').print_stats()"

sort_stats支持以下参数:

calls, cumulative, file, line, module, name, nfl, pcalls, stdname, time

pstats模块还支持交互式

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中super关键字用法实例分析

本文实例讲述了Python中super关键字用法。分享给大家供大家参考。具体分析如下: 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的...

Python实现HTTP协议下的文件下载方法总结

本文介绍了几种常用的python下载文件的方法,具体使用到了htttplib2,urllib等包,希望对大家有帮忙。 1.简单文件下载 使用htttplib2,具体代码如下: h =...

利用Python-iGraph如何绘制贴吧/微博的好友关系图详解

利用Python-iGraph如何绘制贴吧/微博的好友关系图详解

前言 最近工作中遇到了一些需求,想通过图形化的方式显示社交网络特定用户的好友关系,上网找了一下这方面的图形库有networkx、graphviz等,找了好久我选择了iGraph这个图形库...

Python实现的括号匹配判断功能示例

本文实例讲述了Python实现的括号匹配判断功能。分享给大家供大家参考,具体如下: 1.用一个栈【python中可以用List】就可以解决,时间和空间复杂度都是O(n) # -*-...

在Django的session中使用User对象的方法

在Django的session中使用User对象的方法

通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了。 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证。 当然了,Dja...