使用cProfiler对Python程序进行性能分析

本文介绍了Python性能分析工具cProfile,它用于衡量程序运行时的性能。cProfile是C扩展,适合长时间运行的程序,提供ncalls、totime、cumtime等统计数据。文章还提到了profile模块和已弃用的hotshot。通过实例展示了cProfile的使用方法,分析代码并解释了各项指标的含义,同时提及了通过stats.print_callers()获取调用关系。此外,文中提到在GUI环境中,可以利用RunSnakeRun或KCachegrind进行更深入的分析。
摘要由CSDN通过智能技术生成

介绍

profiler是一个程序,用来描述运行时的程序性能,并且从不同方面提供统计数据加以表述。
Python中含有3个模块提供这样的功能,分别是cProfile,profile和pstats。这些分析器提供的是对Python程序的确定性分析。同时也提供一系列的报表生成工具,允许用户快速地检查分析结果。

Python标准库提供了3个不同的性能分析器:
- cProfile,推荐给大部分的用户,是C的一个扩展应用,因为其合理的运行开销,所以适合分析运行时间较长的。是基于lsprof。
- profile,一个纯python模块,它的接口和cProfile一致。在分析程序时,增加了很大的运行开销。如果你想扩展profiler的功能,可以试着继承这个模块
- hotshot, 一个试验性的c模块,关注减少分析时的运行开销,但是是以需要更长的数据后处理的次数为代价。不过这个模块不再被维护,也有可能在新的python版本中被弃用。

实践

源码

from random import randint
from cProfile import Profile
import pstats

def insert_sort(data):
    result=[]
    for value in data:
        insert_value(result,value)
    return result

def insert_value(result,value):
    for i,existing in enumerate(result):
        if existing &g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值