Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / MFC

Timer class - Time how long your programs run for

1.49/5 (12 votes)
20 Dec 2007CPOL1 min read 2   403  
Time how long an application or a set of processes run for, to millisecond precision.

Introduction

This timer class is used for determining how long a set of processes run for, to the precision of milliseconds. This can be useful if you want to benchmark PCs or want to know whether changing some code in your application affects the speed at which it processes.

Background

I created this class because I could not find another class or set of functions which could time how long it took for my applications to run. After creating the initial object class for the timer, I then expanded on it to create the class which I am describing now.

Using the code

The interface consists of one object: timer. In order to use this class, you need to create an instance of the object using either the default constructor or the boolean constrictor.

To create a timer instance, use one of the following statements:

C++
timer newTimerInstance(); //Create a timer instance

timer newTimerInstance(true); //Use this constructor to start the timer as
                              //soon as the object is created

You can start, stop, and restart the timer by using the following statements:

C++
newTimerInstance.start(); //Start the timer

newTimerInstance.stop(); //Stop the timer

newTimerInstance.start(); //Start the timer again after having been
                          //stopped the timer previously, continuing
                          //accumulating the time

To reset the accumulated time:

C++
newTimerInstance.reset();
//This sets the timer back to 0 so it can be restarted again using start()

You can output the running length of the timer directly using "<<" or store the object as a string, int, or double:

C++
std::cout << newTimerInstance; //Output the running length of the timer

std::string newString = newTimerInstance; //Store the running length of the
                                          //timer as a string

int newInt = newTimerInstance; //Store the number of seconds which the timer
                               //has been running for in an int
double newDouble = newTimerInstance; //Store the number of seconds which the
                                     //timer has been running for in a double

For more information on how to use the class, see the example.cpp included with the package.

History

  • Timer class 1.1 - API modified to represent more closely to a traditional timer. The Restart method has been replaced with Reset. MS naming conventions for objects now used.
  • Timer class 1.2 - API redesigned, hopefully making the usage easier. Pause and Resume methods have been added, and the functionality of the Start and Stop methods have been modified. This makes the timer concept more intuitive.

For more information, visit: www.summatix.com.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)