OGRE-Next: Ogre::OfflineProfiler Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::OfflineProfiler Class Reference

Simple profiler that will produce a CSV file for offline analysis once dumpProfileResults is called. More...

`#include <OgreOfflineProfiler.h>`

## Public Member Functions
| OfflineProfiler ()
| ~OfflineProfiler ()
void | dumpProfileResults (const String &fullPathPerFrame, const String &fullPathAccum)
| Dumps CSV data into two CSV files.
bool | isPaused () const
| Returns true if sampling is paused.
void | profileBegin (const char *name, ProfileSampleFlags::ProfileSampleFlags flags)
void | profileEnd ()
void | reset ()
| Destroys all collected samples and starts over.
void | setDumpPathsOnShutdown (const String &fullPathPerFrame, const String &fullPathAccum)
| Ogre will call dumpProfileResults for your on shutdown if you set these paths.
void | setPaused (bool bPaused)
| Pauses collection of samples.

## Detailed Description

Simple profiler that will produce a CSV file for offline analysis once dumpProfileResults is called.

Remarks
  Because this profiler collects sample undefinitely, it will cause memory consumption to grow over time. You can use setPaused to halt such growth temporarily, which is specially useful if whatever you want to profile is localized to particular execution moment.

## Constructor & Destructor Documentation

## ◆ OfflineProfiler()

Ogre::OfflineProfiler::OfflineProfiler | ( |  | ) |

## ◆ ~OfflineProfiler()

Ogre::OfflineProfiler::~OfflineProfiler | ( |  | ) |

## Member Function Documentation

## ◆ dumpProfileResults()

void Ogre::OfflineProfiler::dumpProfileResults | ( | const String & | fullPathPerFrame,
|  | const String & | fullPathAccum )

Dumps CSV data into two CSV files.

Parameters

  fullPathPerFrame | Full path to csv without extension to generate where to dump the per-frame CSV data. Empty string to skip it. Note that the CSV extension will be appended, and the actual filename my vary as there will be one file per thread that was collected.
  fullPathAccum | Full path to csv without extension to generate where to dump the per-frame CSV data. Empty string to skip it. Note that the CSV extension will be appended, and the actual filename my vary as there will be one file per thread that was collected.

## ◆ isPaused()

bool Ogre::OfflineProfiler::isPaused | ( |  | ) | const

Returns true if sampling is paused.

Note that some worker threads may still be collecting samples even if this returns true (and likewise, they may take a bit of time to resume again)

See also
  OfflineProfiler::setPaused

## ◆ profileBegin()

void Ogre::OfflineProfiler::profileBegin | ( | const char * | name,
|  | ProfileSampleFlags::ProfileSampleFlags | flags )

## ◆ profileEnd()

void Ogre::OfflineProfiler::profileEnd | ( |  | ) |

## ◆ reset()

void Ogre::OfflineProfiler::reset | ( |  | ) |

Destroys all collected samples and starts over.

Worker threads will honour this request as soon as they see it (which is the next time they call profileBegin).

## ◆ setDumpPathsOnShutdown()

void Ogre::OfflineProfiler::setDumpPathsOnShutdown | ( | const String & | fullPathPerFrame,
|  | const String & | fullPathAccum )

Ogre will call dumpProfileResults for your on shutdown if you set these paths.

Parameters

  fullPathPerFrame | Full path to csv without extension to generate where to dump the per-frame CSV data. Empty string to skip it. Note that the CSV extension will be appended, and the actual filename my vary as there will be one file per thread that was collected.
  fullPathAccum | Full path to csv without extension to generate where to dump the per-frame CSV data. Empty string to skip it. Note that the CSV extension will be appended, and the actual filename my vary as there will be one file per thread that was collected.

See also
  OfflineProfiler::dumpProfileResults

## ◆ setPaused()

void Ogre::OfflineProfiler::setPaused | ( | bool | bPaused | ) |

Pauses collection of samples.

Note that other threads may be in the middle of a collection (i.e. they've called profileBegin but haven't yet called profileEnd). Threads will pause after their collection ends (i.e. only after they end up calling profileEnd).

Likewise, if you resume sampling, a thread that already called profileBegin while it was paused, thus it will resume sampling in its next profileBegin call.

TL;DR: It is thread safe, but do not assume pause is immediate (i.e. worker threads may still add a new sample after calling setPaused( true ))

Parameters

  bPaused | True to pause. False to resume.

The documentation for this class was generated from the following file:

- OgreOfflineProfiler.h