分别利用timeit和time模块测试python代码运行时间

       在python中,当我们想测试一段代码的运行时间时,可以利用python的timeit模块和time模块。这两个模块在功能上都可以实现对代码运行时间的计算,但是本文推荐使用的是timeit模块,因为其是专门用来测试代码运行时间的,有一些灵活的方法,并且相对精度也会更高。下面我们分别来看下两个模块的主要方法和用法。

       首先是timeit模块。timeit模块有一个Timer类,在构造Timer对象时,可以传入两个参数,两个参数都是字符串格式;第一个时要执行的代码对象,第二个是导入被执行的对象,如图一所示。当然也可以直接传入一段可执行的代码,这样便不需要传入第二个参数。

       要计算代码运行的时间,只需要调用Timer对象的timeit方法即可,该方法有一个参数为整数类型,表示对这段代码执行的次数,然后再返回执行参数对应次数的总时间,该参数默认为1000000。Timer对象还有一个repeat方法,其两个参数分别对应测试的次数和每次测试执行代码的次数,返回一个每次测试所需的时间列表。

       当然,我们也可以不用构造Timer对象,直接利用timeit中的timeit方法即可,其使用方法如图一所示。其可实现的功能和Timer一样,既可以执行现成的代码,也可以通过导入实现,此外其还有一个number参数,表示执行代码的次数,返回执行对应次数的总时间。

图一

       其次,也可以利用time模块测试代码运行时间。time模块中主要有三个函数,clock()、time()和localtime(),其中clock()返回的是从启动该ide到当下的总时长,即改ide程序在cpu中存在的时间,也即cpu时间;time()返回的是UTC时间,是从1970年1月1日开始到现在的秒数时长;localtime()返回的是当下的一个时间,为time.struc_time对象,如图二所示。

       当然,知道了这三个函数的意义,我们自然就可以在测试代码的开始和结尾处分别返回一个时间点,然后用结尾处的时间点减去开始出的时间点就可以得到测试代码的运行时间。但是由于clock()返回的是cpu时间,time()返回的是UTC时间,且从精度而言,clock()方法相对更准确,因此这两者中,更推荐clock()方法。

图二

猜你喜欢

转载自blog.csdn.net/S_o_l_o_n/article/details/82421505