Python’s time.clock() vs. time.time() accuracy?

Python is one of the most versatile programming languages in the world of computer programming. From data science to advanced robotics, a large number of applications use Python as their main programming language. It is easy to remember syntax and a variety of in-built functions make it easier to work with and provide a lot of features for projects ranging from simulations to scientific research. If one is willing to compromise with computational time then python is the best language available in today’s world.

What is time.time()?

Many beginners don’t know the meaning of the time.time() function in python and how it works internally. Let’s take a deep dive and explore this function. time.time returns the time in seconds since the epoch, i.e., the point where the time starts. For any operating system, you can always run time.gmtime(0) to find out what epoch is on the given system. For Unix based operating systems, the epoch is January 1, 1970. For Windows, the time epoch is January 1, 1601. time.time is often used to benchmark a program on Windows.

What is time.clock()?

Just like time.time(), time.clock() is another function used by python to calculate time and provide it to the user, let’s take a deeper dive and see what does time.clock() mean and how does it work from the inside. The time.clock() method of the time module in Python language is used to get the current processor time as a floating-point number which is expressed in seconds. As, most of the functions defined in the time module of python call corresponding C library functions, time.clock() method also calls C library function of the same name to get the result. The precision of returned float value depends on the called C library function.

What is the difference between the two?

Now that we know what is time.time() and time.clock() functions. Let’s see what are the differences between them. We know that both time.time() and time.clock() show that the time the wall-clock time passed approximately one second. Unlike Unix based operating systems, time.clock() does not return the processor time, instead, it returns the wall-clock time with higher accuracy than time.time().

Given the operating system-dependent behaviour of time.time() and time.clock(), which one should we use to calculate the “precise” performance of a program? Well, it depends on various factors. If the program is expected to execute in an operating system that almost dedicates more than enough resources to the program, i.e., a very dedicated web server running a Python-based web application, then calculate the performance of the program using time.clock() makes sense since the web application usually would be the major program running on the web server. If the program is expected to run in an operating system that also runs lots of other programs at the same time and uses a lot of resources, then measuring the program using time.time() makes more sense. Most often than not, we should always use a wall-clock-based timer to calculate a program’s performance since it often reflects the production environment.

Leave a Comment