Skip to main content

The time Module, Delays & Performance Benchmarking

While datetime is built for calendar dates, human months, and clock time, Python's built-in time module is designed for system timers, epoch timestamps, and execution delays.


1. Introducing Delays with time.sleep()​

time.sleep(seconds) pauses the execution of your Python script for the specified number of seconds (can be a float for milliseconds):

import time

print("Sending verification OTP to user...")
# Pause execution for 2 seconds
time.sleep(2)
print("OTP sent successfully!")

# Fractional seconds (e.g. 500 milliseconds):
time.sleep(0.5)

Real-World Use Case: Polite Web Scraping & Polling​

When calling third-party APIs or polling background servers for task status, adding a 1–2 second sleep prevents your IP address from getting rate-limited or blocked.


2. Unix Epoch Timestamps with time.time()​

Computers store time as the number of seconds that have passed since January 1, 1970 UTC (known as the Unix Epoch):

import time

epoch_seconds = time.time()
print("Epoch timestamp:", epoch_seconds) # Output: 1786184710.123456

3. High-Precision Benchmarking with time.perf_counter()​

When measuring how fast an algorithm, database query, or sorting function executes, never use time.time() (which can be affected by system clock resets).

Always use time.perf_counter(), which provides ultra-high resolution nanosecond hardware timers:

import time

def benchmark_calculation():
start = time.perf_counter()

# Run expensive operation: sum of squares up to 1,000,000
total = sum(x ** 2 for x in range(1000000))

end = time.perf_counter()
execution_time = end - start
print(f"Calculation completed in: {execution_time:.6f} seconds.")

benchmark_calculation()

Quick Summary​

Featuretime moduledatetime module
Primary FocusHardware clock, pauses, secondsHuman calendar dates & formatting
Delay executiontime.sleep(seconds)Not supported
Benchmarkingtime.perf_counter()Not designed for high-resolution nanoseconds
Parsing stringstime.strptime()datetime.strptime() (Recommended)

What's Next?​

Let's explore mathematical constants, rounding, factorials, and trigonometric calculations in The math Module!