Python Timeit() พร้อมตัวอย่าง

ความหมายของ Python เวลา()?

Python เวลา() เป็นวิธีการใน Python ไลบรารีเพื่อวัดเวลาดำเนินการที่ใช้โดยข้อมูลโค้ดที่กำหนด ที่ Python ไลบรารีรันคำสั่งโค้ด 1 ล้านครั้ง และจัดเตรียมเวลาขั้นต่ำที่ใช้จากชุดข้อมูลโค้ดที่กำหนด Python timeit() เป็นวิธีที่มีประโยชน์ที่ช่วยในการตรวจสอบประสิทธิภาพของโค้ด

วากยสัมพันธ์

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

พารามิเตอร์

  • สตม: นี่จะใช้โค้ดที่คุณต้องการวัดเวลาดำเนินการ ค่าเริ่มต้นคือ "ผ่าน"
  • การติดตั้ง: ซึ่งจะมีรายละเอียดการตั้งค่าที่ต้องดำเนินการก่อน stmt ค่าเริ่มต้นคือ “pass”
  • เครื่องจับเวลา: สิ่งนี้จะมีค่าตัวจับเวลา, timeit() มีการตั้งค่าเริ่มต้นอยู่แล้ว และเราสามารถเพิกเฉยต่อมันได้
  • จำนวน: stmt จะดำเนินการตามหมายเลขที่ให้ไว้ที่นี่ ค่าเริ่มต้นคือ 1000000

หากต้องการทำงานกับ timeit() เราจำเป็นต้องนำเข้าโมดูล ดังที่แสดงด้านล่าง:

import timeit

ตัวอย่างแรก

นี่คือตัวอย่างง่ายๆ ของฟังก์ชัน timeit()

รหัสตัวอย่างที่ 1

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

Output:

0.06127880399999999

เราได้เห็นตัวอย่างง่ายๆ ที่ให้เวลาในการดำเนินการของเอาต์พุตคำสั่งโค้ดอย่างง่าย = 10*5 และเวลาที่ใช้ในการดำเนินการคือ 0.06127880399999999

การกำหนดเวลาหลายบรรทัดในโค้ดหลาม

มีสองวิธีในการดำเนินการโค้ดหลายบรรทัดใน timeit.timeit(): โดยคั่นบรรทัดด้วยเครื่องหมายเซมิโคลอน หรือใส่โค้ดเป็นสตริงด้วยเครื่องหมายคำพูดสามตัว

นี่คือตัวอย่างที่แสดงการทำงานของมัน

ตัวอย่างที่ 1: การใช้อัฒภาค

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

Output:

The time taken is  0.137031482

ตัวอย่างที่ 2: การใช้เครื่องหมายคำพูดสามตัว

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

Output:

C:\pythontest>python testtimeit.py
The time taken is  0.182619178

เวลา – วิธีการ

นี่คือ 2 วิธีที่สำคัญในเวลา

timeit.default_timer() : สิ่งนี้จะส่งคืนเวลาเริ่มต้นเมื่อดำเนินการ

timeit.repeat (stmt, การตั้งค่า, ตัวจับเวลา, ทำซ้ำ, หมายเลข) : เช่นเดียวกับ 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))

Output:

0.46715912400000004

2 ตัวอย่าง

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)

Output:

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

ตัวอย่างที่ 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))

Output:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat() ทำงานคล้ายกับฟังก์ชัน timeit.timeit() โดยมีข้อแตกต่างเพียงอย่างเดียวในอาร์กิวเมนต์การทำซ้ำ และส่งคืนเวลาดำเนินการในรูปแบบอาร์เรย์พร้อมค่าตามหมายเลขการทำซ้ำ

การดำเนินการฟังก์ชันจับเวลา timeit.timeit() ภายในอินเทอร์เฟซบรรทัดคำสั่ง

ไวยากรณ์เพื่อเรียกใช้ฟังก์ชันของคุณภายใน timeit() บนบรรทัดคำสั่งมีดังนี้:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

พารามิเตอร์บรรทัดคำสั่ง:

  • -n N: จำนวนครั้งที่คุณต้องการให้โค้ดทำงาน
  • -r N: จำนวนครั้งที่คุณต้องการให้ฟังก์ชัน timeit() ทำซ้ำ
  • -s S: นี่จะมีรายละเอียดการตั้งค่าที่จะถูกดำเนินการก่อนการเรียกใช้โค้ด
  • -t: สำหรับสิ่งนี้ คุณสามารถใช้ time.time() ได้
  • -c: สำหรับสิ่งนี้ คุณสามารถใช้ time.clock() ได้
  • -h: เพื่อขอความช่วยเหลือ
  • คำสั่งรหัส: รายละเอียดของรหัส

ตัวอย่าง

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

อีกวิธีหนึ่งที่คุณสามารถดำเนินการภายในบรรทัดคำสั่งได้ดังแสดงด้านล่าง:

ตัวอย่าง

>>> 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() เป็นวิธีที่ดีที่สุดในการวัดเวลาดำเนินการ

  • โดยจะรันคำสั่งโค้ด 1 ล้านครั้งซึ่งเป็นค่าเริ่มต้น และจากนั้นจะส่งคืนเวลาขั้นต่ำที่ใช้ไปให้กับคุณ คุณสามารถเพิ่ม/ลด 1 ล้านได้ด้วยการตั้งค่าหมายเลขอาร์กิวเมนต์ในฟังก์ชันเวลา ()
  • ในขณะที่ดำเนินการทดสอบ ฟังก์ชันการรวบรวมขยะจะถูกปิดใช้งานทุกครั้งตามเวลา ()
  • timeit() ภายในจะจับเวลาที่แม่นยำตามระบบปฏิบัติการที่คุณใช้ ตัวอย่างเช่น จะใช้ time.clock() Windows ระบบปฏิบัติการและ time.time() สำหรับ Mac และ Linux

สรุป

Timeit() ใช้เพื่อรับเวลาดำเนินการสำหรับโค้ดขนาดเล็กที่กำหนด

พารามิเตอร์ที่ใช้กับ timeit()

  • stmt: นี่จะใช้โค้ดที่คุณต้องการวัดเวลาดำเนินการ
  • การตั้งค่า: นี่จะมีรายละเอียดการตั้งค่าที่จำเป็นต้องดำเนินการก่อน stmt
  • ตัวจับเวลา: นี่จะเป็นค่าตัวจับเวลา timeit() มีการตั้งค่าเริ่มต้นอยู่แล้ว และเราสามารถเพิกเฉยต่อมันได้
  • number: stmt จะดำเนินการตามหมายเลขที่ให้ไว้ที่นี่