#include <winstl/performance/performance_counter.hpp>
The following example illustrates the use of the counter to measure an interval:
winstl::performance_counter counter; counter.start(); for(volatile size_t i = 0; i != 0x7fffffff; ++i) counter.stop(); std::cout << "Number of seconds: " << counter.get_seconds() << std::endl; std::cout << "Number of milliseconds: " << counter.get_milliseconds() << std::endl; std::cout << "Number of microseconds: " << counter.get_microseconds() << std::endl;
Note: Some standard libraries' IOStreams do not recognise the 64-bit unsigned integer that is the counter class's interval_type (and epoch_type), in which case you should use an appropriate cast. The following code shows a cast to unsigned long, but be aware that this may cause truncation in the case where, say, the unsigned long type for your compiler is 32-bits and the value returned by a given get_???() method is > 4294967295.
winstl::performance_counter counter; counter.start(); for(volatile size_t i = 0; i != 0x7fffffff; ++i) counter.stop(); std::cout << "Number of seconds: " << static_cast<unsigned long>(counter.get_seconds()) << std::endl; std::cout << "Number of milliseconds: " << static_cast<unsigned long>(counter.get_milliseconds()) << std::endl; std::cout << "Number of microseconds: " << static_cast<unsigned long>(counter.get_microseconds()) << std::endl;
Attributes | |
| interval_type | get_period_count () const |
| The elapsed count in the measurement period. | |
| interval_type | get_seconds () const |
| The number of whole seconds in the measurement period. | |
| interval_type | get_milliseconds () const |
| The number of whole milliseconds in the measurement period. | |
| interval_type | get_microseconds () const |
| The number of whole microseconds in the measurement period. | |
| interval_type | stop_get_period_count_and_restart () |
| Stops the current period, starts the next, and returns the period count for the prior period. | |
| interval_type | stop_get_seconds_and_restart () |
| Stops the current period, starts the next, and returns the interval, in seconds, for the prior period. | |
| interval_type | stop_get_milliseconds_and_restart () |
| Stops the current period, starts the next, and returns the interval, in milliseconds, for the prior period. | |
| interval_type | stop_get_microseconds_and_restart () |
| Stops the current period, starts the next, and returns the interval, in microseconds, for the prior period. | |
| static epoch_type | get_epoch () |
| The current epoch. | |
| static interval_type | get_seconds (epoch_type start, epoch_type end) |
| The number of whole seconds in the given measurement period. | |
| static interval_type | get_milliseconds (epoch_type start, epoch_type end) |
| The number of whole milliseconds in the given measurement period. | |
| static interval_type | get_microseconds (epoch_type start, epoch_type end) |
| The number of whole microseconds in the given measurement period. | |
Public Types | |
Member types | |
| typedef sinteger64 | epoch_type |
| The epoch type. | |
| typedef sinteger64 | interval_type |
| The interval type. | |
| typedef performance_counter | class_type |
| The class type. | |
Public Member Functions | |
Operations | |
| void | start () |
| Starts measurement. | |
| void | stop () |
| Ends measurement. | |
| void | restart () |
| Ends the current measurement period and start the next. | |
| typedef sinteger64 epoch_type |
The epoch type.
The type of the epoch measurement. This will be a 64-bit signed integer for compilers that such types, or a 32-bit integer otherwise.
| typedef sinteger64 interval_type |
The interval type.
The type of the interval measurement. This will be a 64-bit signed integer for compilers that such types, or a 32-bit integer otherwise.
| typedef performance_counter class_type |
The class type.
| void start | ( | ) |
Starts measurement.
Begins the measurement period
| void stop | ( | ) |
Ends measurement.
Ends the measurement period
| void restart | ( | ) |
| static epoch_type get_epoch | ( | ) | [static] |
The current epoch.
| static interval_type get_seconds | ( | epoch_type | start, | |
| epoch_type | end | |||
| ) | [static] |
The number of whole seconds in the given measurement period.
| static interval_type get_milliseconds | ( | epoch_type | start, | |
| epoch_type | end | |||
| ) | [static] |
The number of whole milliseconds in the given measurement period.
| static interval_type get_microseconds | ( | epoch_type | start, | |
| epoch_type | end | |||
| ) | [static] |
The number of whole microseconds in the given measurement period.
| interval_type get_period_count | ( | ) | const |
The elapsed count in the measurement period.
This represents the extent, in machine-specific increments, of the measurement period
| interval_type get_seconds | ( | ) | const |
The number of whole seconds in the measurement period.
This represents the extent, in whole seconds, of the measurement period
| interval_type get_milliseconds | ( | ) | const |
The number of whole milliseconds in the measurement period.
This represents the extent, in whole milliseconds, of the measurement period
| interval_type get_microseconds | ( | ) | const |
The number of whole microseconds in the measurement period.
This represents the extent, in whole microseconds, of the measurement period
| interval_type stop_get_period_count_and_restart | ( | ) |
Stops the current period, starts the next, and returns the period count for the prior period.
| interval_type stop_get_seconds_and_restart | ( | ) |
Stops the current period, starts the next, and returns the interval, in seconds, for the prior period.
| interval_type stop_get_milliseconds_and_restart | ( | ) |
Stops the current period, starts the next, and returns the interval, in milliseconds, for the prior period.
| interval_type stop_get_microseconds_and_restart | ( | ) |
Stops the current period, starts the next, and returns the interval, in microseconds, for the prior period.
1.5.6