Click here to Skip to main content
15,881,882 members
Articles / Desktop Programming / MFC

Timer class - Time how long your programs run for

Rate me:
Please Sign up or sign in to vote.
1.49/5 (12 votes)
20 Dec 2007CPOL1 min read 34.5K   403   17   8
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)


Written By
Australia Australia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
AnswerRE: Good work + some humble suggestions Pin
summatix16-Dec-07 11:47
summatix16-Dec-07 11:47 
GeneralRe: RE: Good work + some humble suggestions Pin
Pepsibot19-Dec-07 14:08
Pepsibot19-Dec-07 14:08 
GeneralRe: RE: Good work + some humble suggestions Pin
summatix20-Dec-07 15:04
summatix20-Dec-07 15:04 
GeneralRe: RE: Good work + some humble suggestions Pin
Pepsibot25-Dec-07 21:15
Pepsibot25-Dec-07 21:15 
GeneralGood work + some humble suggestions Pin
Pepsibot11-Dec-07 21:47
Pepsibot11-Dec-07 21:47 
GeneralCoding Conventions Pin
Ri Qen-Sin10-Dec-07 0:44
Ri Qen-Sin10-Dec-07 0:44 
GeneralRe: Coding Conventions Pin
Pepsibot11-Dec-07 21:53
Pepsibot11-Dec-07 21:53 
GeneralRe: Coding Conventions Pin
summatix16-Dec-07 11:55
summatix16-Dec-07 11:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.