Python’s time.clock() Vs. time.time() – A Detailed Comparison

Introduction

Before we get into the detailed comparison between time.clock() vs. time.time(), there are some prerequisites that you need to focus upon. It is important to have knowledge about the various types of time in the computing world. Don’t worry if you don’t have any idea about this; we have got you covered.

  • Execution Time: It estimates the time spent by a CPU while executing a program. 
  • Wall-Clock Time: It estimates the total time to execute a program on a PC. The wall-clock time is additionally called the running time. In contrast with the CPU time, the running time is longer as the CPU executing the program may likewise also be executing other program’s instructions simultaneously. 
  • Another type of time is the System Time, which is estimated by the system clock. It represents a computer system’s idea on the progression of time.

In the insights of Python code execution speed to utilize the time package, there are mainly two functions time.time () and time.clock () that are available. In this article, we will see a detailed comparison between the two functions.

time.time()

Definition and Usage

  • The time.time() function is used to get the time in seconds since the epoch.
  • It returns time in floating numbers.
  • The handling of seconds is dependent on the platform. 

Syntax

time.time()

Note: Since the time is returned as a floating-point number, not all the systems return the time at a precision that is better than 1 second. While this function regularly returns non-diminishing values, it can also return a lower value than a past call if the system clock has been set back between the two calls.

Example:

# Importing the time module
import time

# time.time() method
x = time.gmtime(0)
ep = time.asctime(x)
seconds = time.time()

print("Time in seconds", seconds)

Output:

Time in seconds 1625321356.7288663

💡 TIDBIT

❖ Most computer systems use a system of timekeeping called Unix Time, or Epoch Time, and count seconds from the Unix Epoch, which is arbitrarily set at 00:00:00 UTC on 1 January 1970. UTC stands for Coordinated Universal Time which is the time at 0 degrees longitude.
❖ Within Python, we can find out the current number of seconds since Epoch Time by importing the time module and using the class time().

gmtime(): This function converts a time, expressed in seconds since the epoch, to the struct_time format in UTC. If no seconds are entered into the function, it will return the current time returned by time()

asctime() is time function in Python that converts a tuple or struct_time ( generally representing a time format that is returned by gmtime() or localtime() ) to a 24-character string. 

time.clock()

Definition and Usage

According to the official documentation:

On Unix, return the current processor time as a floating-point number expressed in seconds. The precision, and in fact the very definition of the meaning of "processor time", depends on that of the C function of the same name, but in any case, this is the function to use for benchmarking Python or timing algorithms.

On Windows, this function returns wall-clock seconds elapsed since the first call to this function, as a floating-point number, based on the Win32 function QueryPerformanceCounter(). The resolution is typically better than one microsecond.

Syntax

time.clock()

⚠️Caution: This function is no longer useful since Python version 3.3 and has been deprecated. Hence, you are suggested to use time.process_time() or time.perf_counter() instead of using time.clock().

Example:

# Importing the time module
import time

# time.clock() method
# We use time.process_time() method instead of time.clock() method for python versions above 3.8
proc = time.process_time()

# Printing the current processor time
print("Current processor time:", proc)

Output:

Current processor time: 0.09375

Difference In Execution Speed

We must utilize the time library when we deal with functions that involve Python code execution speed. Now, this time library has the functions – time.time() and time.clock(), which allow us to work with time-related functionalities in Python.

CPU operating mechanism: CPU performs various tasks; for example, during the execution of numerous processes, it has been processed for each interaction over a period of time. A process from the start to the end is really disconnected on some column time interferences during this period. So this will prompt the CPU time executed (the program is essentially running the required time on the CPU) as well as the wall clock running Time.

time.time()time.clock()
◈ The time.time() function is the wall clock time, which is the timestamp of the system clock. So the time difference between the two calls is the complete time the system has elapsed.  ◈ The time.clock() [time.process_time()] function is used to calculate the CPU time, which is the most suitable approach to check the execution speed of a program or any particular function. The interpolation of the call to this function twice is the CPU time of the program.

Let’s have a look at an example to understand the difference between the two.

Example:

# Importing the time module
import time


def proc():
    a = 0
    for i in range(100000):
        a = a + 1


# Calculating the time before calling the function
t0 = time.time()
p0 = time.process_time()

# Calling the function
proc()

# Calculating the time after calling the function
t1 = time.time()
p1 = time.process_time()

# Printing the total execution time using both the methods
print("Wall clock time:", t1 - t0)
print("Current processor time:", p1 - p0)

Output:

Wall clock time: 0.008969306945800781
Current processor time: 0.015625

REMEMBER: Benchmarking in Python

We know that the time.time() function returns the seconds since the epoch (in UTC) on all the platforms. On Unix, time.clock() function measures the CPU time that has been utilized by the current process. This function is not useful for estimating past time from the past. On Windows, it will gauge wall clock seconds elapsed since the main call to the function. Hence, changing the system time only influences the time.time() function and not the time.clock() function. In case you’re timing the execution of code for benchmarking purposes, you should rather utilize the timeit module.

The timeit Module 

Rather than managing various functions of the time module like the time.time() and time.clock() on various platforms, which is frequently error-prone, Python’s timeit module provides a basic method to timing. Other than calling it directly from the code, you can also call it from the command line.

This article will give you an idea about the simplicity of the timeit module and its use case: Which is Faster: List Comprehension or Map Function in Python?

Conclusion

We have come to the end of our discussion in this article. Here, we studied how the time.time() and time.clock() functions work in Python and the difference between them.  To keep learning, please subscribe to our channel and blog tutorials and stay tuned for more interesting tutorials.

Recommended Tutorial: How to Get the Current Time in Python?

👩‍🎓 Post Credits: Shubham Sayon and Rashi Agarwal


  • One of the most sought-after skills on Fiverr and Upwork is web scraping. Make no mistake: extracting data programmatically from websites is a critical life skill in today’s world that’s shaped by the web and remote work.
  • So, do you want to master the art of web scraping using Python’s BeautifulSoup?
  • If the answer is yes – this course will take you from beginner to expert in Web Scraping.