Python Timeit() مع أمثلة
ما هي تفاصيل Python تيميت ()؟
Python الوقت هو() هي طريقة في Python مكتبة لقياس وقت التنفيذ الذي يستغرقه مقتطف التعليمات البرمجية المحدد. ال Python تقوم المكتبة بتشغيل بيان التعليمات البرمجية مليون مرة وتوفر الحد الأدنى من الوقت المستغرق من مجموعة مقتطفات التعليمات البرمجية المحددة. Python timeit() هي طريقة مفيدة تساعد في التحقق من أداء التعليمات البرمجية.
بناء الجملة
timeit.timeit(stmt, setup,timer, number)
المعلمات
- com.stmt: سيأخذ هذا الكود الذي تريد قياس وقت التنفيذ له. القيمة الافتراضية هي "تمرير".
- الإعداد:سيتضمن هذا تفاصيل الإعداد التي يجب تنفيذها قبل stmt. القيمة الافتراضية هي "pass".
- مؤقت: سيكون لهذا قيمة المؤقت، وtimeit() لديه بالفعل مجموعة قيمة افتراضية، ويمكننا تجاهلها.
- عدد: سيتم تنفيذ stmt حسب الرقم الوارد هنا. القيمة الافتراضية هي 1000000.
للعمل مع timeit()، نحتاج إلى استيراد الوحدة، كما هو موضح أدناه:
import timeit
المثال الأول
فيما يلي مثال بسيط لوظيفة timeit()
مثال الكود 1
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
الإخراج:
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'))
الإخراج:
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))
الإخراج:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – الطرق
فيما يلي طريقتان مهمتان للوقت
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))
الإخراج:
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)
الإخراج:
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))
الإخراج:
[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()
- -ح: للمساعدة
- بيان الكود: تفاصيل الكود.
مثال
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() أفضل طريقة لقياس وقت التنفيذ.
- يقوم بتشغيل بيان الكود مليون مرة وهي القيمة الافتراضية، ومن ذلك سيعيد لك الحد الأدنى من الوقت المستغرق. يمكنك أيضًا زيادة/تقليل المليون عن طريق تعيين رقم الوسيطة في وظيفة الوقت ().
- أثناء تنفيذ الاختبار، يتم تعطيل جمع البيانات المهملة في كل مرة بواسطة وظيفة الوقت ().
- يقوم timeit() داخليًا بحساب الوقت الدقيق وفقًا لنظام التشغيل الذي تستخدمه. على سبيل المثال، سيستخدم time.clock() لـ Windows نظام التشغيل وtime.time() لنظامي التشغيل Mac وLinux.
الملخص
يتم استخدام Timeit() للحصول على الوقت المستغرق للتنفيذ للتعليمات البرمجية الصغيرة المقدمة
المعلمات المستخدمة مع timeit()
- stmt: سيأخذ هذا الكود الذي تريد قياس وقت التنفيذ
- الإعداد: سيحتوي هذا على تفاصيل الإعداد التي يجب تنفيذها قبل البدء
- الموقت: سيكون لهذا قيمة الموقت، timeit () لديه بالفعل مجموعة قيمة افتراضية، ويمكننا تجاهلها.
- الرقم: سيتم تنفيذ stmt حسب الرقم الوارد هنا.