اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

هناك عدة طرق لحساب وقت تنفيذ البرنامج أو سكريبت معين أو حتى دالة 

  • باستخدام الحزمة DateTime المشهورة . 
from datetime import datetime

# نحتفظ بوقت بداية التنفيذ
start = datetime.now()

# الكود الخاص بك 
a = 0
for i in range(1000):
	a += (i**100)

# نحتفظ بوقت نهاية التنفيذ
end = datetime.now()

#ثم نطرح وقت نهاية التنفيذ من نهاية النتفيذ
time_execution = (end - start).total_seconds() 
print(f"وقت تنفيذ البرنامج  : {time_execution}s")
  • باستخدام الحزمة timeit :

هذا من شأنه أن يمنحنا وقت تنفيذ أي برنامج أو سكريبت. توفر هذه الوحدة طريقة بسيطة للعثور على وقت تنفيذ أجزاء صغيرة من الكود. يوفر الدالة timeit () لفعل الشيء نفسه. تقبل هذه الدالة timeit.timeit (stmt، setup، timer، number) 4 parameters:

  1. stmt وهو البيان(دالة او جزء من الكود ...) الذي تريد قياسه ؛ يتم تعيينه افتراضيًا على "pass".
  2. setup ، وهو الكود الذي تقوم بتشغيله قبل تشغيل stmt ؛ يتم تعيينه افتراضيًا على "pass". نستخدم هذا بشكل عام لاستيراد الوحدات المطلوبة للكود .
  3. timer، وهو كائن timeit.Timer ؛ عادةً ما يكون له قيمة افتراضية معقولة ، لذلك لا داعي للقلق بشأنها.
  4. number ، وهو عدد عمليات التنفيذ التي ترغب في تشغيلها stmt.

مثال :

# نقوم باستيراد الحزمة
import timeit

#  رمز يتم تنفيذه مرة واحدة فقط
# قبل  stmt في timeit
mysetup = "from math import sqrt"

# رمز وقت التنفيذ
# يقاس ...
mycode = '''
def example():
	mylist = []
	for x in range(100):
		mylist.append(sqrt(x))
'''

# وهنا يبدأ شغل الدالة timeit()
exec_time = timeit.timeit(stmt=mycode,setup=mysetup,number=1000000)
print(f" وقت تنفيذ البرنامج : {exec_time}s")

 

كلاهما يفي بالغرض ولكن الحزمة التي تطبق جميع معايير الكود النضيف هي الدالة timeit .

  • 1
نشر

الفكرة من تسجيل وقت تنفيذ البرنامج هو عمل قراءتين للزمن الحقيقي من بداية و نهاية البرنامج ثم حساب الفرق بينهم ويكون هذا وقت تنفيذ البرنامج

from datetime import datetime

# البداية
start=datetime.now()


#Statements   برنامجك
# 1 تعليمات برمجية
# 2
# 3

# النهاية
stop=datetime.now()

print('Time: ', stop - start)  

اعتمدنا على الحزمة datetime والدالة now التي تعيد الزمن اللحظي وقت استدعائها، 

وطالما أن خطوات البرنامج بين تعليمتي حساب الوقت start و stop تأخذ بعض الوقت، فيكون هذا هو وقت تنفيذ البرنامج

  • 1
نشر (معدل)

يمكنك القيام بذلك عن طريق استعمال المكتبة time بالشكل التالي:

import time


t1 = time.time()


sum = 0
for i in range(100000):
  sum += i

t2 = time.time()

print(f'{(t2-t1)*1000} ms')

حيث أن الكود الذي يقوم بالجمع هو فقط على سبيل المثال.

و نحن هناك نقوم بتحديد الوقت قبل تنفيذ الكود و بعده و نقوم بالطرح للحصول على وقت تنفيذ الكود.

تم التعديل في بواسطة Kais Hasan

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...