python函数运行内存时间等性能检测工具

目录
  • 基础测试函数
  • memory_profiler进程
  • timeit 时间使用情况
  • line_profiler行代码检测
  • heartrate可视化检测

python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率。

这里总结了五个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。

基础测试函数

首先,来编写一个基础的python函数用于在后面的各种性能测试。

def base_func():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

memory_profiler进程

memory_profiler是python的非标准库,所以这里采用pip的方式进行安装。它能够监视进程、了解内存使用等情况。

pip install memory_profiler

安装好memory_profiler库以后,直接使用注解的方式进行测试。

from memory_profiler import profile
@profile
def base_func1():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
base_func1()
# Line #    Mem usage    Increment  Occurrences   Line Contents
# =============================================================
#     28     45.3 MiB     45.3 MiB           1   @profile
#     29                                         def base_func():
#     30     45.3 MiB      0.0 MiB       10001       for n in range(10000):
#     31     45.3 MiB      0.0 MiB       10000           print('当前n的值是:{}'.format(n))

从返回的数据结果来看,执行当前函数使用了45.3 MiB的内存。

timeit 时间使用情况

timeit是python的内置模块,可以测试单元格的代码运行时间,由于是内置模块所以并不需要单独安装。

import timeit
def base_func2():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
res = timeit.timeit(base_func2,number=5)
print('当前的函数的运行时间是:{}'.format(res))
# 当前的函数的运行时间是:0.9675800999999993

根据上面函数的运行返回结果,函数的运行时间是0.96秒。

line_profiler行代码检测

如果在只需要检测函数的局部运行时间的话就可以使用line_profiler了,它可以检测出每行代码的运行时间。

line_profiler是python的非标准库,使用的使用pip的方式安装一下。

pip install line_profiler

最简便的使用方式直接将需要测试的函数加入即可。

def base_func3():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))
from line_profiler import LineProfiler
lp = LineProfiler()
lp_wrap = lp(base_func3)
lp_wrap()
lp.print_stats()
# Line #      Hits         Time  Per Hit   % Time  Line Contents
# ==============================================================
#     72                                           def base_func3():
#     73     10001     162738.0     16.3      4.8      for n in range(10000):
#     74     10000    3207772.0    320.8     95.2          print('当前n的值是:{}'.format(n))

从运行结果可以看出每行代码的运行时间及比例,注意这里的时间单位是微妙。

heartrate可视化检测

heartrate最值得推荐的是可以在网页上面向检测心率一样检测程序的执行过程,同时,他还是非标准库,使用pip的方式进行安装。

pip install heartrate
import heartrate
heartrate.trace(browser=True)
def base_func4():
    for n in range(10000):
        print('当前n的值是:{}'.format(n))

运行以后,控制台打印如下日志:

#  * Serving Flask app "heartrate.core" (lazy loading)
#  * Environment: production
#    WARNING: This is a development server. Do not use it in a production deployment.
#    Use a production WSGI server instead.
#  * Debug mode: off

并且自动打开浏览器地址:http://127.0.0.1:9999

以上就是python函数运行内存时间等性能检测工具的详细内容,更多关于python性能检测工具的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python性能分析工具pyinstrument提高代码效率

    目录 安装 简单的使用 分析 Flask 代码 分析 Django 代码 分析异步代码 工作原理 最后的话 天下武功,唯快不破. 编程也不例外,你的代码跑的快,你能快速找出代码慢的原因,你的码功就高. 安装 pip install pyinstrument 简单的使用 在程序的开始,启动 pyinstrument 的 Profiler,结束时关闭 Profiler 并打印分析结果如下: from pyinstrument import Profiler profiler = Profiler()

  • 4款Python 类型检查工具,你选择哪个呢?

    微软在 Github 上开源了一个 Python 静态类型检查工具:pyright ,引起了社区内的多方关注. 微软在开源项目上的参与力度是越来越大了,不说收购 Github 这种大的战略野心,只说它家开源的 VS Code 编辑器,在猿界已经割粉无数,连我们 Python 圈的红人 Kenneth Reitz (多个开源项目的作者,包括 requests.requests-html.responder等)都对它赞不绝口. 如今开源的 Pyright ,口碑还不错,那我们就来看看它有啥本事,顺便

  • 10种检测Python程序运行时间、CPU和内存占用的方法

    在运行复杂的Python程序时,执行时间会很长,这时也许想提高程序的执行效率.但该怎么做呢? 首先,要有个工具能够检测代码中的瓶颈,例如,找到哪一部分执行时间比较长.接着,就针对这一部分进行优化. 同时,还需要控制内存和CPU的使用,这样可以在另一方面优化代码. 因此,在这篇文章中我将介绍7个不同的Python工具,来检查代码中函数的执行时间以及内存和CPU的使用. 1. 使用装饰器来衡量函数执行时间 有一个简单方法,那就是定义一个装饰器来测量函数的执行时间,并输出结果: import time

  • Python性能分析工具Profile使用实例

    这篇文章主要介绍了Python性能分析工具Profile使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码优化的前提是需要了解性能瓶颈在什么地方,程序运行的主要时间是消耗在哪里,对于比较复杂的代码可以借助一些工具来定位,python 内置了丰富的性能分析工具,如 profile,cProfile 与 hotshot 等.其中 Profiler 是 python 自带的一组程序,能够描述程序运行时候的性能,并提供各种统计帮助用户定位程序

  • 用Python编写分析Python程序性能的工具的教程

    虽然并非你编写的每个 Python 程序都要求一个严格的性能分析,但是让人放心的是,当问题发生的时候,Python 生态圈有各种各样的工具可以处理这类问题. 分析程序的性能可以归结为回答四个基本问题: 正运行的多快 速度瓶颈在哪里 内存使用率是多少 内存泄露在哪里 下面,我们将用一些神奇的工具深入到这些问题的答案中去. 用 time 粗粒度的计算时间 让我们开始通过使用一个快速和粗暴的方法计算我们的代码:传统的 unix time 工具. $ time python yourprogram.py

  • python函数运行内存时间等性能检测工具

    目录 基础测试函数 memory_profiler进程 timeit 时间使用情况 line_profiler行代码检测 heartrate可视化检测 python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率. 这里总结了五个比较好的python性能检测工具,包括内存使用.运行时间.执行次数等方面. 基础测试函数 首先,来编写一个基础的python函数用于在后面的各种性能测试. def base_func():     for n in range(10000

  • python性能检测工具函数运行内存及运行时间

    目录 1.memory_profiler进程监视 2.timeit 时间使用情况 3.line_profiler行代码运行时间检测 4.heartrate可视化检测工具 前言: python虽然是一门'慢语言',但是也有着比较多的性能检测工具来帮助我们优化程序的运行效率.这里总结了五个比较好的python性能检测工具,包括内存使用.运行时间.执行次数等方面. 首先,来编写一个基础的python函数用于在后面的各种性能测试. def base_func(): for n in range(1000

  • python 邮件检测工具mmpi的使用

    概要介绍 mmpi,是一款使用python实现的开源邮件快速检测工具库,基于community框架设计开发.mmpi支持对邮件头.邮件正文.邮件附件的解析检测,并输出json检测报告. mmpi,代码项目地址:https://github.com/a232319779/mmpi,pypi项目地址https://pypi.org/project/mmpi/ mmpi,邮件快速检测工具库检测逻辑: 支持解析提取邮件头数据,包括收件人.发件人的姓名和邮箱,邮件主题,邮件发送时间,以及邮件原始发送IP.

  • Python性能分析工具py-spy原理用法解析

    Py-Spy介绍 引用官方的介绍: Py-Spy是Python程序的抽样分析器. 它允许您可视化查看Python程序在哪些地方花了更多时间,整个监控方式无需重新启动程序或以任何方式修改工程代码. Py-Spy的开销非常低:它是用Rust编写的,速度与编译的Python程序不在同一个进程中运行. 这意味着Py-Spy可以安全地用于生成生产环境中的Python应用调优分析. github:https://github.com/benfred/py-spy 安装 pip install py-spy

  • 2款Python内存检测工具介绍和使用方法

    去年自己写过一个程序时,不太确定自己的内存使用量,就想找写工具来打印程序或函数的内存使用量.这里将上次找到的2个内存检测工具的基本用法记录一下,今后分析Python程序内存使用量时也是需要的. memory_profiler模块(与psutil一起使用)注:psutil这模块,我太喜欢了,它实现了很多Linux命令的主要功能,如:ps, top, lsof, netstat, ifconfig, who, df, kill, free 等等.示例代码(https://github.com/smi

  • Python简单格式化时间的方法【strftime函数】

    本文实例讲述了Python简单格式化时间的方法,分享给大家供大家参考,具体如下: walker经常用到当前时间和相对时间,用来统计程序执行的效率,简单记一下,便于copy. >>> import time >>> startTime = time.time() >>> '%.2fs' % (time.time() - startTime) #相对时间 '24.51s' >>> '{:.2f}s'.format(time.time()

  • 布同自制Python函数帮助查询小工具

    比如在学习list.tuple.dict.str.os.sys等模组的时候,利用Python的自带文档可以很快速的全面的学到那些处理的函数.所以这个自带文档功能能够给出学者带来很大的方便之处,进行简短的开发是再好不过的. 但是,当你离开CMD,要利用IDLE或者要用Komodo Edit等软件进行"段式编程"的时候,就有些捉襟见肘了.例如,wx库非常之大,帮助文件有10MB之多,如果你在CMD中打开,你可以想想你需要多少时间才能够查看到你想要的帮助信息.大规模的熟悉Python的各种A

  • 在 Linux/Mac 下为Python函数添加超时时间的方法

    我们在使用 requests 这类网络请求第三方库时,可以看到它有一个参数叫做 timeout ,就是指在网络请求发出开始计算,如果超过 timeout 还没有收到返回,就抛出超时异常.(当然存在特殊情况timeout 会失效,请看Timeouts and cancellation for humans* 这篇文章中作者的举例,我们不考虑这种特殊情况). 但大家有没有考虑过,如何为普通的函数设置超时时间?特别是在运行一些数据处理.AI 相关的代码时,某个函数可能会运行很长时间,我们想实现,在函数

随机推荐