profiling data at run time. An example usage could be showing realtime
performance statistics of a game or a simulation.
-See also class ProfilingScope.
+Data can be recorded by creating a ProfilingScope object in the scope to be
+profiled.
Note: This is not thread-safe. To profile multiple threads, create a separate
Profiler for each thread.
public:
Profiler();
- /**
- Sets the averaging period for timing data, measured in calls. Previous
- average timings are cleared.
- */
+ /** Sets the averaging period for timing data, measured in calls. Previous
+ average timings are cleared. */
void set_period(unsigned p);
- /**
- Adds a scope without recording any calls to it. Useful if you might need to
- access a scope before it has finished for the first time.
- */
+ /** Adds a scope without recording any calls to it. Useful if you might
+ need to access a scope before it has finished for the first time. */
void add_scope(const std::string &name);
- /**
- Changes the recorded innermost scope pointer and returns the old one. This
- is used by ProfilingScope to track child time and should not be called
- manually.
- */
+ /** Changes the recorded innermost scope pointer and returns the old one.
+ This is used by ProfilingScope to track child time and should not be called
+ manually. */
ProfilingScope *enter(ProfilingScope *ps);
/** Records the data from a ProfilingScope. It is not useful to call this
manually. */
void record(const ProfilingScope &);
- /**
- Returns informations about a scope.
- */
+ /** Returns informations about a scope. */
const ScopeInfo &get_scope(const std::string &) const;
};