4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例

这篇具有很好参考价值的文章主要介绍了4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1、memory_profiler查看内存的使用情况

memory_profiler可以用来测量python进程的内存使用情况。可以按行查看内存的使用情况。

memory_profiler 是一个监控进程内存消耗的模块,可以逐行分析 Python 程序的内存消耗。它是一个依赖 psutil 模块的纯 Python 模块。

只需要在目标函数上加个装饰器 @profile,就可以实现对此函数内存使用的统计。

安装:pip install -U memory_profiler

官方文档:https://pypi.org/project/memory-profiler/

案例1,脚本如下:

from memory_profiler import profile

@profile
def base_func1():
    for n in range(10000):
        print(f'当前n的值是:{n}')


base_func1()

# 从返回的数据结果来看,执行当前函数使用了45.3 MiB的内存。返回结果如下:
# 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))

案例2,脚本如下:

# -*- encoding: utf-8 -*-
from memory_profiler import profile


@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a


if __name__ == '__main__':
    my_func()

执行结果如下图:
4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例

2、timeit 时间使用情况

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

import timeit

def base_func2():
    for n in range(10000):
        print(f'当前n的值是:{n}')

res = timeit.timeit(base_func2,number=5)

print(f'当前的函数的运行时间是:{res}')

# 执行结果如下:
# 0.09903816704172641

3、line_profiler行代码运行时间检测

官方文档:https://pypi.org/project/line-profiler/

安装:pip install line_profiler

from line_profiler import LineProfiler


def base_func3():
    for n in range(10000):
        print(f'当前n的值是:{n}')


lp = LineProfiler()
lp_wrap = lp(base_func3)
lp_wrap()
lp.print_stats()

"""
执行结果如下:(单位时间为微妙)
Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
     1                                           def base_func3():
     2     10000    1538000.0    153.8      2.8      for n in range(10000):
     3     10000   53417000.0   5341.7     97.2          print('当前n的值是:{}'.format(n))"""

4、heartrate可视化检测工具

heartrate最值得推荐的是可以在网页上面向检测心率一样检测程序的执行过程,是非标准库,2019年11月停止更新。

文档:https://www.cnpython.com/pypi/heartrate

安装:pip install heartrate

使用案例:

import heartrate

heartrate.trace(browser=True)

def base_func4():
    for n in range(10000):
        print(f'当前n的值是:{n}')

执行完会在浏览器上显示:
4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例文章来源地址https://www.toymoban.com/news/detail-429949.html

到了这里,关于4个python内存性能检测工具:memory_profiler、timeit、line_profiler、heartrate的使用案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 性能测试,python 内存分析工具 -memray

    Memray是一个由彭博社开发的、开源内存剖析器;开源一个多月,已经收获了超8.4k的star,是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。 Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配,可以生成多种不同类型的报告,帮助您分

    2024年02月15日
    浏览(52)
  • 简单使用AndroidStudio 官方Profiler工具进行内存泄漏检查

    Android studio(下面简称AS)为App提供的性能分析工具,在AS3.0+替换掉旧的分析工具,对于其使用方法,官方也有对应的介绍:Android Profiler 对于使用方法,我只用到比较简单的功能,高级的还没用到,使用案例进行简答的使用,在此之前,你可能需要到官方文档中了解Profiler中

    2023年04月08日
    浏览(47)
  • Android开发之性能测试工具Profiler

    性能优化问题,在我们开发时都会遇到,但是在小厂和对自己要求不严格的情况下,我都很少去做性能优化; 在性能优化上,基本大家都是通过自己的开发经验和性能分析工具来发现问题,今天给大家分享一下小编最近使用的Profiler工具 帮助开发者了解应用的CPU,内存,网络

    2024年02月11日
    浏览(43)
  • React中的性能测试工具组件Profiler的基本使用

    React中的性能测试工具组件Profiler是一个非常有用的工具,它可以帮助我们分析React应用程序的性能瓶颈。在本文中,我们将学习如何使用Profiler组件来测试React应用程序的性能。 首先,让我们来了解一下Profiler组件的基本用法。在React中,我们可以通过在组件树上添加Profiler组

    2024年02月11日
    浏览(44)
  • jmap(Memory Map for Java)Java内存映像工具

    jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为 heapdump 或 dump文件 ) 如果不使用jmap命令,要想获取Java堆转储快照也还有一些比较“暴力”的手段: 譬如 -XX:+HeapDumpOnOutOfMemoryError 参数,可以让虚拟机在内存溢出异常出现之后自动生成堆转储快照文件, 通过 -XX:

    2024年02月12日
    浏览(53)
  • Eclipse内存分析器 Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用

    =============================================------------------------ 然后我将堆内存文件转储,就告诉我内存泄漏,分析结果如下,请帮我前后理解关系。我需要向领导汇报。7 instances of “org.apache.catalina.loader.ParallelWebappClassLoader”, loaded by “java.net.URLClassLoader @ 0x4c0008ae8” occupy 17,693,472 (1

    2024年04月26日
    浏览(55)
  • 高效Python-2-1 剖析(Profiling 性能分析)

    本章包括 剖析代码以发现速度和内存瓶颈 更有效地利用现有的Python数据结构 了解Python分配典型数据结构的内存成本 使用懒编程技术处理大量数据 有很多工具和库可以帮助我们编写更高效的Python。但是,在我们深入研究提高性能的所有外部选项之前,让我们先仔细看看如何

    2024年02月14日
    浏览(32)
  • Py:代码性能分析之使用python工具—如利用cProfile【输出每个函数的运行时间和调用次数】/line_profiler【输出每行代码的执行时间】)同时对比斐波那契数列问题的递归方法和动态规划

    Py:代码性能分析之使用python工具—如利用cProfile【输出每个函数的运行时间和调用次数】/line_profiler【输出每行代码的执行时间】)同时对比斐波那契数列问题的递归方法和动态规划算法实现 目录

    2024年02月04日
    浏览(81)
  • 项目性能优化-内存泄漏检测与修改

    最近终于有空优化一波项目的性能了,第一波借助Android Studio自带的Profiler工具检测内存泄漏。 右侧带有绿色原点的就是此时运行的Profiler的SESSION,点击右侧MEMORY进入内存监控的详情模块 第三步中抓取一段时间后,会自动停止,并打开Heap Dump文件 可以看到抓取到2个会导致内存

    2024年02月11日
    浏览(55)
  • Linux性能优化--性能工具:系统内存

    本章概述了系统级的Linux内存性能工具。本章将讨论这些工具可以测量的内存统计信息,以及如何使用各种工具收集这些统计结果。阅读本章后,你将能够: 理解系统级性能的基本指标,包括内存的使用情况。 明白哪些工具可以检索这些系统级性能指标。 每一种系统级Linu

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包