cprofile 是 python 自带的高性能函数级性能分析工具,可通过命令行或代码中启用,结合 pstats 分析二进制结果,重点关注 ncalls、tottime 和 cumtime 三列定位瓶颈。

cProfile 是 Python 自带的高性能、低开销函数级性能分析工具,适合定位程序中耗时最多的函数调用路径,是优化慢代码的第一步。
如何快速启用 cProfile
最简单的方式是通过命令行直接运行:
python -m cProfile your_script.py
若想保存结果到文件便于后续分析:
python -m cProfile -o profile_stats.prof your_script.py
生成的 profile_stats.prof 是二进制格式,不能直接阅读,需用 pstats 模块加载分析。
立即学习“Python免费学习笔记(深入)”;
用 pstats 交互式查看热点函数
在 Python 中加载并探索分析结果:
Magento是一套专业开源的PHP电子商务系统。Magento设计得非常灵活,具有模块化架构体系和丰富的功能。易于与第三方应用系统无缝集成。Magento开源网店系统的特点主要分以下几大类,网站管理促销和工具国际化支持SEO搜索引擎优化结账方式运输快递支付方式客户服务用户帐户目录管理目录浏览产品展示分析和报表Magento 1.6 主要包含以下新特性:•持久性购物 - 为不同的
import pstats<br>stats = pstats.Stats('profile_stats.prof')<br>stats.sort_stats('cumulative') # 按累计时间排序<br>stats.print_stats(10) # 打印前 10 行常用排序字段包括:'time'(自身耗时)、'cumulative'(含子调用总耗时)、'calls'(调用次数)。还可筛选函数名:
stats.filter_stats('my_function')<br>stats.print_stats()在代码中按需启动和停止分析
适合只分析某一段关键逻辑,避免全局开销:
import cProfile<br>pr = cProfile.Profile()<br>pr.enable()<br># 这里放你要分析的代码,比如 data_processing()<br>pr.disable()<br>pr.dump_stats('section.prof')注意:enable() 和 disable() 必须成对出现;多次 enable/disable 会累积统计,如需清空可新建 Profile 实例。
识别瓶颈的关键指标怎么看
输出表格中重点关注三列:
- ncalls:调用次数。高频调用但单次快的函数,也可能拖慢整体
- tottime:该函数自身执行时间(不含子函数),反映算法内部效率
- cumtime:从进入该函数到完全退出的总时间(含所有子调用),高值说明它是调用链顶层或 I/O 密集
例如发现 json.loads 的 cumtime 占比极高,可能应考虑换用 orjson 或预解析;若某个循环内 tottime 累积很高,就值得检查是否可向量化或缓存。










