Skip to content

Automatically exported from code.google.com/p/cpp-stopwatch

License

Notifications You must be signed in to change notification settings

amicha24/cpp-stopwatch

Repository files navigation

How to use this code
====================

	Not surprisingly, Stopwatch is a class representing a stopwatch.

		Stopwatch swatch();
	
	A Stopwatch object can be used to measure execution time of code, algorithms, etc., the Stopwatch can
	be initialized in two time-taking modes, CPU time and real time:
	
	
		watch.set_mode(REAL_TIME);

	CPU time is the time spent by the processor on a certain piece of code, while real time is the real
	amount of time taken by a certain piece of code to execute (i.e. in general if you are doing hard work
	such as image or video editing on a different process the measured time will probably increase).
	
	How does it work? Basically, one wraps the code to be measured with the following method calls:
	
		swatch.start("My astounding algorithm");
		// Hic est code
		swatch.stop("My astounding algorithm");
		
	A string representing the code ID is provided so that nested portions of code can be profiled separately:
	
		swatch.start("My astounding algorithm");
		
		swatch.start("My astounding algorithm - Super smart init");
		// Initialization
		swatch->stop("My astounding algorithm - Super smart init");
		
		swatch.start("My astounding algorithm - Main loop");
		// Loop
		swatch.stop("My astounding algorithm - Main loop");
		
		swatch.stop("My astounding algorithm");

	Note: ID strings can be whatever you like, in the previous example I have used "My astounding algorithm - *"
	only to enforce the fact that the measured code portions are part of My astounding algorithm, but there's no
	connection between the three measurements.
		
	If the code for a certain task is scattered through different files or portions of the same file one can use 
	the start-pause-stop method:
	
		swatch.start("Setup");
		// First part of setup
		swatch.pause("Setup");
		
		swatch.start("Main logic");
		// Main logic
		swatch.stop("Main logic");
		
		swatch.start("Setup");
		// Cleanup (part of the setup)
		swatch.stop("Setup");
		
	Finally, to report the results of the measurements just run:
	
		swatch.report("Code ID");

	Thou can also provide an additional std::ostream& parameter to report() to redirect the logging on a different
	output. Also, you can use the get_total/min/max/average_time() methods to get the individual numeric data, without
	all the details of the logging. You can also extend Stopwatch to implement your own logging syntax.
		
	To report all the measurements:
	
		swatch.report_all();

	Same as above, you can redirect the output by providing a std::ostream& parameter.	

License
=======

See LICENSE file.

Drop a line
===========

If you use this code for your software, please let me know with a mail
message at [email protected], or not.

About

Automatically exported from code.google.com/p/cpp-stopwatch

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages