利用PyCharm的Profile工具进行Python性能分析
Profile:
PyCharm提供了性能分析工具Run-》Profile,如下图所示。利用Profile工具可以对代码进行性能分析,找出瓶颈所在。
测试:
下面以一段测试代码来说明如何使用pycharm的Profile功能。
测试代码见下文,文件命名为Test.py, 一共有5个函数,每个函数都调用了time.sleep进行延时,其中fun5函数调用了fun4函数:
import time
def fun1(a, b):
print('fun1')
print(a, b)
time.sleep(1)
def fun2():
print('fun2')
time.sleep(1)
def fun3():
print('fun3')
time.sleep(2)
def fun4():
print('fun4')
time.sleep(1)
def fun5():
print('fun5')
time.sleep(1)
fun4()
fun1('foo', 'bar')
fun2()
fun3()
fun5()
点击Run-》Profile开始测试,代码运行结束后会生成一栏测试结果,测试结果由两部分构成,Statistcs(性能统计)和Call Graph(调用关系图):
Statistcs(性能统计):
性能统计界面由Name、Call Count、Time(ms)、Own Time(ms) 4列组成一个表格,见下图。
1. 表头Name显示被调用的模块或者函数;Call Count显示被调用的次数;Time(ms)显示运行时间和时间百分比,时间单位为毫秒(ms)。
2.点击表头上的小三角可以升序或降序排列表格。
3.在Name这一个列中双击某一行可以跳转到对应的代码。
4.以fun4这一行举例:fun4被调用了一次,运行时间为1000ms,占整个运行时间的16.7%
Call Graph(调用关系图):
Call Graph(调用关系图)界面直观展示了各函数直接的调用关系、运行时间和时间百分比,见下图。
0.右上角的4个按钮表示放大、缩小、真实大小、合适大小;
1.箭头表示调用关系,由调用者指向被调用者;
2.矩形的左上角显示模块或者函数的名称,右上角显示被调用的次数;
3.矩形中间显示运行时间和时间百分比;
4.矩形的颜色表示运行时间或者时间百分比大小的趋势:红色 > 黄绿色 > 绿色,由图可以看出fun3的矩形为黄绿色,fun1为绿色,所有fun3运行时间比fun1长。
5.从图中可以看出Test.py直接调用了fun3、fun1、fun2和fun5函数;fun5函数直接调用了fun4函数;fun1、fun2、fun3、fun4和fun5都直接调用了print以及sleep函数;整个测试代码运行的总时间为6006ms,其中fun3的运行时间为1999ms,所占的时间百分比为33.3%,也就是 1999ms / 6006ms = 33.3%。
---------------------
作者:xiemanR
来源:CSDN
原文:https://blog.csdn.net/xiemanR/article/details/69398057
版权声明:本文为博主原创文章,转载请附上博文链接!
相关文章
- mac pycharm安装设置_python爬虫 | mac系统PyCharm的安装「建议收藏」
- pycharm中文版怎么配置python环境_python怎么加编译器
- pycharm 常用快捷键_PyCharm快捷键
- Python入门:Anaconda和Pycharm的安装和配置
- pycharm自带python环境吗_Python IDE环境之 新版Pycharm安装详细教程[通俗易懂]
- 如何为pycharm配置Python解释器_pycharm选择python解释器
- pycharm开启自动补全_python代码补全插件
- 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)…
- pycharm打包python项目_Python怎么打包
- pycharm上传文件到服务器_python代码部署到服务器
- python下mqtt服务器的搭建_搭建MQTT服务器
- Python招聘岗位信息聚合系统源码(爬虫爬取、数据分析、可视化、互动等功能)
- pyinstaller打包python-docx报错 No such file or directory (default-header.xml)
- pycharm pro 2022 for mac(Python编辑开发)v2022.2.2中文激活版
- Python代码库_Python编程
- python在线代码编辑器-5种最佳Python IDE和代码编辑器
- 【说站】python如何删除字符串的特殊字符
- 【说站】python不同大小文件的复制方法
- 【说站】python定义类的初始化方法
- python读取pkl_Python 读取文件
- python分析人口出生率代码_国家统计局居然也能用的上Python?人口数据Python脚本了解一下?…[通俗易懂]
- Python字典提取_python字典键对应的值
- Python的基础知识_python的基本知识点
- 原创 寒假python学习
- pycharm如何调试python程序_Pycharm断点调试Python程序的步骤方法
- python字符串常见操作
- Python tkinter 一个Music download software的界面
- 【Python】字符串 ⑤ ( Python 字符串快速格式化 | 不考虑变量类型 | 不考虑精度控制 )
- Pycharm 激活注册码(pycharm license activation)
- python怎么自定义异常
- python-Django-视图函数(一)
- python arp欺骗伪造网关代码详解编程语言
- python之socket运用1详解编程语言
- python备份文件的脚本