MIRA
Classes | Namespaces | Macros
Profiler.h File Reference

Macros and classes for profiling code. More...

#include <string>
#include <map>
#include <boost/optional.hpp>
#include <thread/Thread.h>
#include <thread/Spinlock.h>
#include <platform/Types.h>
#include <utils/Time.h>
#include <utils/Singleton.h>
Include dependency graph for Profiler.h:

Go to the source code of this file.

Classes

class  Profiler
 The main Profiler class. More...
 
struct  Profiler::Scope
 

Namespaces

 mira
 specialize cv::DataType for our ImgPixel and inherit from cv::DataType<Vec>
 

Macros

#define MIRA_PROFILE_BEGIN(id)
 
#define MIRA_PROFILE_END(id)
 
#define MIRA_PROFILE_SCOPE(id)
 
#define MIRA_PROFILER_LEVEL   3
 
#define MIRA_PROFILE_BEGIN1(id)   MIRA_PROFILE_BEGIN(id)
 
#define MIRA_PROFILE_END1(id)   MIRA_PROFILE_END(id)
 
#define MIRA_PROFILE_SCOPE1(id)   MIRA_PROFILE_SCOPE(id)
 
#define MIRA_PROFILE_BEGIN2(id)   MIRA_PROFILE_BEGIN(id)
 
#define MIRA_PROFILE_END2(id)   MIRA_PROFILE_END(id)
 
#define MIRA_PROFILE_SCOPE2(id)   MIRA_PROFILE_SCOPE(id)
 
#define MIRA_PROFILE_BEGIN3(id)   MIRA_PROFILE_BEGIN(id)
 
#define MIRA_PROFILE_END3(id)   MIRA_PROFILE_END(id)
 
#define MIRA_PROFILE_SCOPE3(id)   MIRA_PROFILE_SCOPE(id)
 
#define __MIRA_PROFILE_BEGIN(id)
 
#define _MIRA_PROFILE_BEGIN(id)   __MIRA_PROFILE_BEGIN(id)
 
#define __MIRA_PROFILE_END(id)
 
#define _MIRA_PROFILE_END(id)   __MIRA_PROFILE_END(id)
 
#define __MIRA_PROFILE_SCOPE(id)
 
#define _MIRA_PROFILE_SCOPE(id)   __MIRA_PROFILE_SCOPE(id)
 

Detailed Description

Macros and classes for profiling code.

Author
Erik Einhorn
Date
2010/11/18

Macro Definition Documentation

◆ MIRA_PROFILE_BEGIN

#define MIRA_PROFILE_BEGIN (   id)

◆ MIRA_PROFILE_END

#define MIRA_PROFILE_END (   id)

◆ MIRA_PROFILE_SCOPE

#define MIRA_PROFILE_SCOPE (   id)

◆ MIRA_PROFILER_LEVEL

#define MIRA_PROFILER_LEVEL   3

◆ MIRA_PROFILE_BEGIN1

#define MIRA_PROFILE_BEGIN1 (   id)    MIRA_PROFILE_BEGIN(id)

◆ MIRA_PROFILE_END1

#define MIRA_PROFILE_END1 (   id)    MIRA_PROFILE_END(id)

◆ MIRA_PROFILE_SCOPE1

#define MIRA_PROFILE_SCOPE1 (   id)    MIRA_PROFILE_SCOPE(id)

◆ MIRA_PROFILE_BEGIN2

#define MIRA_PROFILE_BEGIN2 (   id)    MIRA_PROFILE_BEGIN(id)

◆ MIRA_PROFILE_END2

#define MIRA_PROFILE_END2 (   id)    MIRA_PROFILE_END(id)

◆ MIRA_PROFILE_SCOPE2

#define MIRA_PROFILE_SCOPE2 (   id)    MIRA_PROFILE_SCOPE(id)

◆ MIRA_PROFILE_BEGIN3

#define MIRA_PROFILE_BEGIN3 (   id)    MIRA_PROFILE_BEGIN(id)

◆ MIRA_PROFILE_END3

#define MIRA_PROFILE_END3 (   id)    MIRA_PROFILE_END(id)

◆ MIRA_PROFILE_SCOPE3

#define MIRA_PROFILE_SCOPE3 (   id)    MIRA_PROFILE_SCOPE(id)

◆ __MIRA_PROFILE_BEGIN

#define __MIRA_PROFILE_BEGIN (   id)
Value:
static mira::Profiler::Node* _node_##id = \
mira::Profiler::instance().newProfileNode(#id,__FILE__, __LINE__); \
mira::Profiler::Node* _parent_##id = \
mira::Profiler::instance().beginHierarchy(_node_##id,__FILE__, __LINE__);\
uint64 _start_##id = mira::Profiler::getCycleCount();
static Type & instance()
Returns a reference to the singleton instance.
Definition: Singleton.h:544
static uint64 getCycleCount()
Definition: Profiler.h:385

◆ _MIRA_PROFILE_BEGIN

#define _MIRA_PROFILE_BEGIN (   id)    __MIRA_PROFILE_BEGIN(id)

◆ __MIRA_PROFILE_END

#define __MIRA_PROFILE_END (   id)
Value:
uint64 _duration_##id = mira::Profiler::getCycleCount() - _start_##id; \
mira::Profiler::instance().endHierarchy(_node_##id, _parent_##id, \
_duration_##id, __FILE__, __LINE__);
static Type & instance()
Returns a reference to the singleton instance.
Definition: Singleton.h:544
static uint64 getCycleCount()
Definition: Profiler.h:385

◆ _MIRA_PROFILE_END

#define _MIRA_PROFILE_END (   id)    __MIRA_PROFILE_END(id)

◆ __MIRA_PROFILE_SCOPE

#define __MIRA_PROFILE_SCOPE (   id)
Value:
static mira::Profiler::Node* _node_##id = \
mira::Profiler::instance().newProfileNode(#id,__FILE__, __LINE__); \
mira::Profiler::Scope _scope_##id(_node_##id,__FILE__, __LINE__);
static Type & instance()
Returns a reference to the singleton instance.
Definition: Singleton.h:544

◆ _MIRA_PROFILE_SCOPE

#define _MIRA_PROFILE_SCOPE (   id)    __MIRA_PROFILE_SCOPE(id)