python四个性能检测工具,包括函数的运行内存、时间等等…

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

【阅读全文】

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

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

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

1、memory_profiler进程监视

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

[En]

It can monitor processes, understand memory usage, and so on.

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的内存。

2、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.967580099999993

[En]

The running time of the current function is 0.967580099999993

根据上述函数的结果,函数的运行时间为0.96秒。

[En]

According to the result of the above function, the running time of the function is 0.96 seconds.

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

如果在只需要检测函数的局部运行时间的话就可以使用line_profiler了,它可以检测出每行代码的运行时间。
line_profiler是python的非标准库,使用的使用pip的方式安装一下。

pip install line_profiler

使用它最简单的方法是添加需要直接测试的函数。

[En]

The easiest way to use it is to add the functions that need to be tested directly.

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))

从运行结果中,您可以看到每行代码的运行时间和比例,并注意这里的时间单位是微妙的。

[En]

From the running results, you can see the running time and proportion of each line of code, and note that the unit of time here is subtle.

4、heartrate可视化检测工具

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

pip install heartrate

import heartrate

heartrate.trace(browser=True)

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

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

[En]

After running, the console prints the following log:

 * 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四个性能检测工具,包括函数的运行内存、时间等等...

python-turtle绘制雪容融,已打包成exe可直接运行(附源码)

如何将多张图片合成mp4视频格式,并加入背景音乐…

模型已经写好了,如何表达爱意由你决定!

[En]

The model has been written, how to express love is up to you!

python如何实现网络测试,了解一下speedtest-cli…

又到了樱花盛开的季节。用小乌龟画一棵樱桃树。

[En]

It is the season of cherry blossoms again. Use the little turtle to draw a cherry tree.

Original: https://www.cnblogs.com/lwsbc/p/16209970.html
Author: Python集中营
Title: python四个性能检测工具,包括函数的运行内存、时间等等…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/499696/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球