基准和性能分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boyun58/article/details/84749457

假设我们已经编写了一个代码,并且它也给出了期望的结果,但是如果想要更快地运行此代码,因为需求已经发生了变化。 在这种情况下,需要找出代码的哪些部分正在减慢整个程序。 在这种情况下,基准测试和分析可能很有用。

  • 基准测试是什么?
    基准测试旨在通过与标准进行比较来评估某些事物。 然而,这里出现的问题是,什么是基准,以及为什么需要软件编程。 对代码进行基准测试意味着代码的执行速度以及瓶颈的位置。 基准测试的一个主要原因是它优化了代码。

  • 基准是如何工作?
    如果我们谈论基准测试的工作,需要首先将整个程序作为一个当前状态,然后可以将微基准结合起来,然后将程序分解成更小的程序。 找到程序中的瓶颈并优化它。 换句话说,我们可以把它理解为将大而难的问题分解为一系列较小和较容易的问题来优化它们。

  • Python模块进行基准测试
    在Python中,我们有一个默认的基准测试模块,称为timeit。 在timeit模块的帮助下,我们可以在主程序中测量一小段Python代码的性能。

import timeit
import time
def functionA():
   print("Function A starts the execution:")
   print("Function A completes the execution:")
def functionB():
   print("Function B starts the execution")
   print("Function B completes the execution")
start_time = timeit.default_timer()
functionA()
print(timeit.default_timer() - start_time)

start_time = timeit.default_timer()
functionB()
print(timeit.default_timer() - start_time)

》》》
Function A starts the execution:
Function A completes the execution:
2.855139218513108e-05
Function B starts the execution
Function B completes the execution
6.416043187669906e-06
注意单位换算,此处使用科学记数法

性能分析
如使用内存,时间复杂度或使用关于程序的特定指令来衡量程序的真实能力。 这种关于程序的测量称为分析。 分析使用动态程序分析来进行这种测量。

cProfile - 内置模块
cProfile是一个用于分析的Python内置模块。 该模块是一个具有合理开销的C扩展,适合分析长时间运行的程序。 运行后,它会记录所有的功能和执行时间。 这是非常强大的,但有时难以解释和操作。

猜你喜欢

转载自blog.csdn.net/boyun58/article/details/84749457