利用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%。



  • 26
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
PyCharm是一款功能强大的Python集成开发环境,它提供了许多实用的工具来帮助开发者提高代码的性能。其中之一就是性能分析工具。通过使用PyCharm性能分析工具,开发者可以找到程序中的性能瓶颈,并进行相应的优化。 在PyCharm中,可以使用内置的性能分析工具Profile进行性能分析。通过使用Profile,你可以详细了解程序中各个函数的运行时间和调用关系。具体操作包括以下几个步骤: 1. 首先,你需要在你的代码中插入性能分析的代码。可以使用`profile`模块来实现这个功能。在你想要进行性能分析的函数前面添加装饰器`@profile`,然后运行你的代码。 2. 运行代码后,PyCharm会自动打开一个性能分析的视图。在这个视图中,你可以看到代码的运行时间、函数的调用次数等统计信息。 3. 在性能分析视图中,你可以选择查看不同的统计数据。例如,你可以查看函数的运行时间、函数的调用次数、函数的调用关系等等。这些统计数据可以帮助你找到程序中的性能问题。 4. 通过分析性能统计和调用关系图,你可以找到程序中的性能瓶颈。例如,你可以查看哪些函数的运行时间最长,哪些函数被频繁调用等等。 总的来说,PyCharm性能分析工具可以帮助你找到程序中的性能问题,并提供相应的优化建议。通过使用这个工具,你可以提高代码的性能,提升程序的运行效率。 : https://www.example.com/article1 : https://www.example.com/article2 : https://www.example.com/article3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值