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

yipeiwu_com7年前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设计】。

相关文章

Flask框架中密码的加盐哈希加密和验证功能的用法详解

密码加密简介 密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性。 加密存储:通过一定的变换形式,使得密码原文不易被识别。 密码加密的几类方式: 明文转码加...

python增加图像对比度的方法

本代码实现的是,在旋转10度的基础上,再进行增加对比度的操作。 1 代码: 代码注释中的代码都是可以运行的.  但是不怎么靠谱,因为文件名被逐个编辑,有可能与原标签不对应,,更...

Python Django实现layui风格+django分页功能的例子

Python Django实现layui风格+django分页功能的例子

第一步:首先定义一个视图函数,用于提供数据,实现每页显示数据个数,返回每页请求数据 from django.shortcuts import render from django.c...

python操作ie登陆土豆网的方法

本文实例讲述了python操作ie登陆土豆网的方法。分享给大家供大家参考。具体如下: 这里利用ie操作登陆土豆网,很简单,仅做一下记录,以备后用。 # -*- coding: utf...

python 一篇文章搞懂装饰器所有用法(建议收藏)

python 一篇文章搞懂装饰器所有用法(建议收藏)

01. 装饰器语法糖 如果你接触 Python 有一段时间了的话,想必你对 @ 符号一定不陌生了,没错 @ 符号就是装饰器的语法糖。 它放在一个函数开始定义的地方,它就像一顶帽子一样戴...