پرسش

چطور می‌تونم زمان سپری شده رو در پایتون اندازه‌گیری کنم؟

How do I measure elapsed time in Python?

می‌خوام زمان سپری شده بین دو نقطه از کد رو اندازه بگیرم. چطور میتونم اینکار رو انجام بدم؟

1403/06/02
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای اندازه‌گیری زمان سپری شده در پایتون می‌تونی از ماژول time استفاده کنی. تابع time.time() زمان فعلی رو به ثانیه‌های گذشتۀ از عصر یونیکس (Unix epoch) برمی‌گردونه. پس می‌تونی قبل و بعد از کدی که می‌خوای اندازه‌گیری کنی، دو بار این تابع رو صدا بزنی و اختلاف بین این دو مقدار، زمان سپری شده رو بهت می‌ده. مثال زیر این موضوع رو نشون می‌ده:

python
import time
# Start time
start_time = time.time()
# Code block to measure
# ...
# End time
end_time = time.time()
# Elapsed time in seconds
elapsed_time = end_time - start_time
print(f"Elapsed time: {elapsed_time} seconds")

این روش ساده و کارآمده و برای بیشتر موارد کافی هست. اما اگر به دقت بیشتری نیاز داری یا مثلاً می‌خوای زمان سپری شده رو به میلی‌ثانیه یا نانوثانیه بسنجی، می‌تونی از ماژول timeit یا perf_counter هم استفاده کنی که دقت بالاتری دارن:

# Start time
start_time = time.perf_counter()
# Code block to measure
# ...
# End time
end_time = time.perf_counter()
# Elapsed time in seconds (with high resolution)
elapsed_time = end_time - start_time
print(f"Elapsed time: {elapsed_time} seconds")

در روش دوم از time.perf_counter() استفاده شده که به جای زمان دیواری (Wall time)، از یک تایمر داخلی با دقت بالا استفاده می‌کنه. این روش بیشتر در شرایطی که دقت خیلی بالا نیاز داری، استفاده می‌شه.

در کل، بسته به نیازت، می‌تونی از یکی از این روش‌ها استفاده کنی. اما time.time() برای بیشتر موارد کافیه و time.perf_counter() برای زمان‌سنجی دقیق‌تر مناسبه.

پاسخ: 1403/06/02
آخرین آپدیت: 1403/07/24