一日一技:Python中的timeit()方法

liftword5个月前 (12-16)技术文章55


timeit()方法


python中的timeit()方法, 它用于获取代码的执行时间。该库将代码语句运行一百万次,并提供从集合中花费的最短时间。这是一种有用的方法,有助于检查代码的性能。


语法如下:

timeit.timeit(stmt, setup,timer, number)

参数解析:

  • stmt:这将采用您要测量其执行时间的代码。默认值为“pass”。
  • setup:这将包含需要在stmt之前执行的设置详细信息。默认值为“ pass”。
  • timer:它将具有计时器值,timeit()已经设置了默认值,我们可以忽略它。
  • number:stmt将按照此处给出的编号执行。默认值为1000000。


要使用timeit(),我们需要导入模块,如下所示:

import timeit


以下是timeit()函数的一个简单示例

代码示例1:

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

输出:

0.06127880399999999

我们已经看到了一个简单的示例,该示例为我们提供了简单代码语句output = 10*5的执行时间,执行该命令所花费的时间为0.06127880399999999。



在python代码中计时多行


我们可以使用分号或通过将包含在代码中的代码保存为带三引号的字符串来在timeit.timeit()中执行两行代码。


示例1:使用分号


import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

输出:

The time taken is  0.182619178



示例2:使用三引号

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

输出:

0.46715912400000004


timeit-方法

以下是2种重要的timeit方法:

  • timeit.default_timer():执行时将返回默认时间。
  • timeit.repeat(stmt,setup,timer,repeat,number):与timeit()相同,但是随着重复,timeit()被称为重复次数。

范例1:

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

输出:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045



范例2:

timeit.default_timer()方法

# testing timeit()
 
import timeit
import random
 
def test(): 
    return random.randint(10, 100)
 
starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

输出:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]


范例3:

timeit.repeat()方法

# testing timeit()
import timeit
import_module = "import random"
testcode = ''' 
def test(): 
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

输出:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]



timeit.repeat()的方法类似于timeit.timeit()方法,唯一的区别是,它采用了repeat()参数,并以数组格式返回执行时间,并按重复编号指定值。



在命令行界面中执行计时功能timeit.timeit()


在命令行中操作,timeit()函数的语法如下:

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>


其中,命令行参数:


  • -n N:希望代码执行的次数。
  • -r N:希望timeit()函数重复的次数
  • -s S:它将具有设置详细信息,这些详细信息将在代码执行之前执行。
  • -t:为此,可以利用time.time()
  • -c:为此,可以利用time.clock()
  • -h:寻求帮助
  • code statement:代码详细信息。


范例如下:

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>




我们也可以在命令行中执行另一种方式,如下所示:

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

为什么timeit()是衡量Python代码执行时间的最佳方法?

我们认为timeit()是衡量执行时间的最佳方法有以下几个原因。


  • 它运行代码语句100万次,这是默认值,并从中返回最短的时间。还可以通过在time()函数中设置参数数来增加/减少一百万。
  • 在执行测试时,每次按time()函数都会禁用垃圾收集。
  • 根据使用的操作系统,timeit()在内部获取准确的时间。例如,对于Windows操作系统,它将使用time.clock();对于Mac和Linux,它将使用time.time()。

摘要:


timeit()方法用于获取给定代码的执行时间

与timeit()一起使用的参数:


  • stmt:这将使用您要测量执行时间的代码
  • setup:这将包含需要在stmt之前执行的设置详细信息
  • timer:它将具有计时器值,timeit()已经设置了默认值,我们可以忽略它。
  • number:stmt将按照此处给出的编号执行。

你学习到了吗?

欢迎在下方留言,

谢谢关注!

相关文章

如何使用 Python 中的日期时间 python中日期函数

Python 的 datetime 包是用于处理日期和时间常用工具。学好以下五个技巧,就可以满足大部分日期时间处理需求。datetime 包中的 date 对象是表示年、月、日的一组值,以及如何处理它...

Python3.6-3.10发布时间及主要新增功能

Python 3.6Python 3.6 发布于2016年12月23日。格式化的字符串文字fstring格式化字符串字面值带有 'f' 前缀并且类似于 str.format() 所接受...