IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python性能测试工具汇总 -> 正文阅读

[Python知识库]Python性能测试工具汇总

一、line_profiler

Python代码优化工具——line_profile

二、memory_profiler

Python代码优化工具——memory_profiler

三、timeit

  1. 参考博客
  2. python内置模块
  3. 功能:测量小代码片段的执行时间
  4. 使用方式:
import timeit
timeit.timeit()

5、参数注解:

  • stmt:传入要测试时间的代码,可以直接接受字符串的表达式,也可以接受函数。如果传入函数,需要要把函数定义在当前文件中,调用timeit方法时的参数为 stmt = 'func()', setup = 'from __main__ import func'即可。
  • setup:传入stmt的运行环境,比如stmt中使用到的参数、变量,要导入的模块等。可以写一行语句,也可以写多行语句,写多行语句时要用分号;隔开语句。
  • number:在一组测试中执行stmt的次数,默认100000次。
  • repeat:重复测试的组数,每次的结果构成列表返回,默认5次。
  • 最终执行的次数为number * repeat

6、个人评价

  • 缺点:只能执行小代码片段,使用的场景很受限制
  • 优点:使用方法简单,且因为stmt可以传函数,所以我们可以将部分简单的代码封装在函数里(比如接口响应时间测试),然后开始重复测试。

四、pyheat

  1. github网址
  2. 安装命令:pip3 install py-heat
  3. 功能:代码执行完毕后,会弹出一个热力图片用来展示每行代码的执行次数。
  4. 使用方式:
    - 命令行方式
pyheat <文件名> -
  • 代码方式:
    from pyheat import PyHeat
    ph = PyHeat(<目标文件路径>)
    ph.create_heatmap()
    # To view the heatmap.
    ph.show_heatmap()
    # To output the heatmap as a file.
    ph.show_heatmap()
  1. 使用时的一些小细节:
  • 业务代码里出现导自定义包的逻辑时,会报ModuleNotFoundError错,需要使用sys.path.append()方法解决,原因是pyheat内部实际上调用pprofile来执行目标路径的代码,实际调用位置与使用pyheat的位置不同。
  • 只会展示最多两个图片:
    • 代码方式执行时:调用pyheat的文件 + pyheat调用的文件
    • 命令行方式执行时:pyheat调用的文件。
  • 个人评价
    • 虽然与matplotlib工具结合,可以以热力图的形式看到每行代码的调用时间,但也仅仅能看到调用时间,而且实际测试时发现结果并不准确,再加上导包问题和最多展示两个热力图片这些缺点,导致个人不推荐使用这个包。

五、heartrate

  1. github网址
  2. 安装命令:pip3 install heartrate
  3. 功能:可以在浏览器上实时查看每一行代码的调用次数,用颜色条的深浅和长度来区分最近调用情况和总体调用情况。
  4. 使用方式:
from heartrate import trace, files
trace(files=files.all, browser=True)
  1. 使用时的一些小细节:
  • 使用时应该把trace语句放在业务代码之前执行,可以是main方法里,也可以放在from heartrate import trace, files之后执行,因为只有执行了这个语句后才会在浏览器上看到接下来代码的调用情况。
  • 默认跟踪的代码是当前文件,可以在trace里的files参数里指定希望跟踪的文件。具体细节可以参考上方的github介绍。
  • trace里的host参数填充的是什么,打开浏览器时网址就应该填什么,例如代码里host参数填写的localhost,那浏览器上的网址写127.0.0.1就不可以。原因是源码里使用的Flask框架搭建的页面,其SERVER_NAME参数使用的是trace方法里所填hostport,没有做任何映射处理。
  • 运行代码后自动打开浏览器的条件:
    • 不填host参数或者host参数填写localhost127.0.0.1
    • browser参数填True
  • 个人评价
    • 比较好玩,想法与其他性能测试工具相比较为新颖,但只能查看调用次数,对于性能调优来说比较鸡肋。

六、Pycharm自带的Profiler工具

  1. 官方文档
  2. 这个工具只能在专业版使用,使用方法也很简单,就是可以使用Run/Debug运行的代码都可以使用Profiler运行,运行结束后会自动弹出性能检测结果,结果包括调用的方法/类/文件等耗时情况以及各函数调用关系图。这个关系图还是比较有用的。

七、objgraph工具

  1. 参考博客

八、profile和cProfile

  1. cProfile和profile功能相似,区别是profile是纯Python语言实现的,cProfile是C语言实现的。
  2. 官方文档
  3. profile和cProfile通常会和pstats内置模块连用,对分析结果进行更多的过滤操作。
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:07:23  更:2022-09-04 01:10:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 13:54:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计