python 代码运行时间获取方式

我们知道为了提高代码的运行速度,我们需要对书写的python代码进行性能测试,而代码性能的高低的直接反馈是电脑运行代码所需要的时间。这里将介绍四种常用的测试代码运行速度的方法。
第一种:使用time模块对代码的运行时间进行统计,代码如下:

import time


class Debug:
    def mainProgram(self):
        start_time = time.time()
        for i in range(100):
            print(i)
        end_time = time.time()
        print(f"the running time is: {end_time - start_time} s")
        

if __name__ == "__main__":
    main = Debug()
    main.mainProgram()

我们采用time 模块给所要测试的代码的前后加上时间戳,一个记为start_time,一个记作end_time,最后代码块的运行时间为end_time-start_time,单位为s(秒)。当然在python中还有许多的记录时间的模块,这里不做过多讨论,均类似于time模块,实现思路上一致,代码实现上大同小异。
第二种:使用IPythonBuilt-in magic commands,%time,代码如下:

class Debug:
    def mainProgram(self):
        %time for i in range(100): print(i)
        

main = Debug()
main.mainProgram()
"""
Wall time: 1.99 ms
"""

这个类定义是可以去掉的,并不会影响最终的结果,%time 后面加上想要计算时间的代码,然后编译器就会在运行后自动给出所测试代码的运行时间,但是经过测试,%time方法测出的时间并不准确,时间波动范围非常大,这个是很好理解的,因为计算机每时每刻都在处理一些进程,也就是说计算机的运行状态每时每刻都是不同的,所以在不同的时刻测试同一段代码的运行时间也会得到不同的结果。
第三种:用IPython的另一个Built-in magic commands,%timeit,使用方法类似于%time,代码如下:

class Debug:
    def mainProgram(self):
        %timeit for i in range(100): print(i)
        

main = Debug()
main.mainProgram()
"""
8.53 ms ± 452 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
"""

結果が得られたことがわかります。各サイクル8.53 ms±452μs(平均±標準偏差、合計7回の実行、1サイクルあたり100回)%timeitと比較して%time%timeitテストコードを複数回実行それらを実行します。時間の平均、および標準偏差も計算するため、この計算方法の結果は、%time実行テストコードを1回使用するよりも正確です
4番目:timeitモジュールをインポートしてコードブロックの実行時間を計算する

import timeit


class Debug:
    def mainProgram(self):
        result = timeit.timeit(stmt="for i in range(100): print(i)", number=10)
        print(result)


main = Debug()
main.mainProgram()
"""
0.05363089999991644 s
"""

timeitモジュールをインポートした後timeit.timeit()それを使用してテストするコードをテストします。コードstringはの形式で入力され、number値を設定し、テストコードを実行する必要がある回数を設定する必要があります。最後0.05363089999991644に、ユニット、、s(秒)および組み込みのマジックメソッド%timeitメソッドを取得します違いは、複数の計算がありますが、最終的に得られる時間はn、コードを1回実行する時間ではなく、コードを実行するために必要な合計時間であることです。
この時点で、コード実行速度テストメソッドの導入は一時的に終了しています。(将来的にはさらに更新され、さらに包括的になる可能性があります)
役に立ったと思われる場合は、手を挙げて、いいね!を付けて、より多くの人に見てもらいましょう〜

おすすめ

転載: blog.csdn.net/u011699626/article/details/108591752