چطور میتونم زمان سپری شده رو در پایتون اندازهگیری کنم؟
How do I measure elapsed time in Python?
میخوام زمان سپری شده بین دو نقطه از کد رو اندازه بگیرم. چطور میتونم اینکار رو انجام بدم؟
برای اندازهگیری زمان سپری شده در پایتون میتونی از ماژول 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() برای زمانسنجی دقیقتر مناسبه.