0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么用模块来观察代码性能表现

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-21 10:53 次阅读

图片

这个神奇的模块能让你实时可视化地观察Python程序执行时每一行代码的性能表现。

左边的数字是每行被击中的次数。条形显示最近被击中的次数,较长的条意味着其被击中的次数更多。

颜色的深浅代表着命中的时间与当前时间的距离,颜色越浅代表离当前时间越近。

下面就来教大家怎么用这个模块来观察你的代码性能表现。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

**(可选1) **如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

**(可选2) **此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install --user heartrate

支持Python3.5及以上版本。

2.基本使用

这个模块用起来超级简单,你只需要在代码里添加下面这两行语句即可:

import heartrate
heartrate.trace(browser=True)

然后打开浏览器窗口,访问:127.0.0.1:9999

就能看到相关的代码性能表现:

图片

通过Heartrate,我可以很清楚地知道我的代码的瓶颈在哪:

图片

左边柱子越长,说明命中次数越多。

白色柱子越频繁出现,说明该行语句存在非常影响性能的问题。

3.高级用法

除了追踪启动Heartrate程序的文件代码之外,Heartrate还能追踪其他文件的运行情况,如果你的文件引入了其他文件下的函数,它也能一起追踪:

from heartrate import trace, files
trace(files=files.path_contains('my_app', 'my_library'))

你只需要这么调用即可追踪其他路径下的文件的代码执行情况。

如果你想追踪全部文件:

from heartrate import trace, files
trace(files=files.all)

这么写即可一劳永逸,不过不建议在生产环境这么用,最好是只用于性能测试。

如果你的代码有性能瓶颈,而你又找不到问题出在哪。那么就快去试一下heartrate,检测到底是哪一行代码出了问题并优化你的代码吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2485

    浏览量

    46539
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66800
  • 编辑器
    +关注

    关注

    1

    文章

    788

    浏览量

    30214
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83473
收藏 人收藏

    评论

    相关推荐

    电源对整个电路性能的影响表现在哪些方面?

    电源对整个电路性能的影响表现在哪些方面?
    发表于 01-08 23:21

    NI 9234模块可以让什么模块代替?

    NI 9234模块可以让什么模块代替?
    发表于 03-02 11:17

    位置传感模块实验表现极好,值得俺重点表扬。

    块)实验证明了,因加有单片机的模块对6050的原始数据做了繁琐麻烦的滤波、运算和转换,比其单芯片模块更适合俺这等门边人士折腾实验。串口模块配给的电脑串口连机演示软件,当然也很精彩,可惜只能是看看热闹,没法自主运用。还是
    发表于 11-10 11:15

    CC2530休眠功耗问题:请问如何观察32M晶振的工作状态? 贴片的焊死了怎么示波器观察?

    左右.我应该怎么处理?3.应该如何观察32M晶振的工作状态? 贴片的焊死了怎么示波器观察?4.能不能观察一些寄存器的参数,确认是否真的进
    发表于 05-22 02:48

    关于pid调节过程,请问都是什么软件观察波形的变化,求指教

    关于pid调节过程,都是什么软件观察波形的变化,求指教
    发表于 08-04 20:52

    请问CCS5.5能在emulator模式调试时profile setup设置窗口观察每个函数的运行时间吗?

    请问一下,CCS5.5可以在simulator模式下PROFILE,但能不能在emulator模式调试时,也profile setup 设置窗口观察每个函数的运行时间呢
    发表于 11-05 08:02

    示波器观察输出波形

    目录一、参考资料本文内容:熟悉脉冲宽度调制 (PWM) 和数模 / 模数转换原理 STM32F103 输出一路 PWM 波形,建议采用定时器方法,示波器观察输出波形。一、
    发表于 08-09 08:15

    安川变频器在出现故障代码时有哪几种表现形式

    一、安川变频器故障代码表现形式安川变频器在出现故障代码时,一共有三种表现形式:1、故障检出故障时,会出现以下状况。LED 操作器上出现表示故障内容的文字,ALM 指示灯点亮。变频器输出被切断,电机
    发表于 09-03 08:45

    topas命令是怎样表现系统各项指标性能

    topas命令是怎样表现系统各项指标性能的?求解答
    发表于 10-19 10:04

    如何将红外通讯代码转化实现?

    如何将红外通讯代码转化实现?
    发表于 10-20 07:26

    如何用示波器观察输出波形

    文章目录任务要求PWM应用例程编写DAC应用例程编写任务要求本人所用STM32为野火家F103指南者烧录用具ST-LINK代码编写为KILE5音频软件为AUSTM32F103输出一路PWM波形
    发表于 12-03 07:15

    如何配置STM32CubeMonitor观察阵列的流动呢?

    我应该如何配置 STM32CubeMonitor 观察阵列的流动?我可以选择第一个位置或扩展数组,但图表会变得一团糟。见下文。
    发表于 12-22 06:04

    行为和结构及表现分离的CSS选项卡的代码免费下载

    本文档的主要内容详细介绍的是行为和结构及表现分离的CSS选项卡的代码免费下载。
    发表于 05-30 17:07 2次下载
    行为和结构及<b class='flag-5'>表现</b>分离的CSS选项卡的<b class='flag-5'>代码</b>免费下载

    基于观察者模式设计的框架-REB,使代码模块

    设计模式里面的观察者模式,一直是作者想去设计一套框架来阐述这一个模式,因此REB(Rice Event Broker)就是为了完成观察者模式的一个框架。 观察者模式 聊REB之前,我们聊聊观察
    的头像 发表于 10-17 09:35 315次阅读
    基于<b class='flag-5'>观察</b>者模式设计的框架-REB,使<b class='flag-5'>代码</b><b class='flag-5'>模块</b>化

    python 使用Dis模块进行代码性能剖析

    就像一个黑匣子,很多时候我们不知道python内部是怎样执行代码的,而且DEBUG的时候也没有机器指令可以查看,非常不利于代码优化。但是没关系,现在我们有Dis模块来对代码进行
    的头像 发表于 11-03 15:39 271次阅读
    python 使用Dis<b class='flag-5'>模块</b>进行<b class='flag-5'>代码</b><b class='flag-5'>性能</b>剖析