hierarchical_timer.h File Reference

Hierarchical timer. More...

#include <string>
#include <vector>
#include <algorithm>
#include "types_nl.h"
#include "time_nl.h"
#include "debug.h"
Include dependency graph for hierarchical_timer.h:

Go to the source code of this file.

Classes

class  NLMISC::CSimpleClock
 A simple clock to measure ticks. More...
class  NLMISC::CHTimer
 Hierarchical timing system. More...
struct  NLMISC::CHTimer::CNode
 a node in an execution path More...
struct  NLMISC::CHTimer::CStats
 Some statistics They can be build from a set of nodes. More...
struct  NLMISC::CHTimer::CTimerStat
struct  NLMISC::CHTimer::CNodeStat
struct  NLMISC::CHTimer::CStatSorter
 A statistics sorter, based on some criterion. More...
struct  NLMISC::CHTimer::CExamStackEntry
 For Hierarchical + sorted display. More...
class  NLMISC::CAutoTimer
 An automatic measuring timer. More...
class  NLMISC::CAutoTimerInst
 Same but display result at end. More...

Namespaces

namespace  NLMISC
 

This namespace contains all miscellaneous classes used by other modules.


Defines

#define ALLOW_TIMING_MEASURES
#define H_AUTO(__name)   static NLMISC::CHTimer __name##_timer(#__name); NLMISC::CAutoTimer __name##_auto(&__name##_timer);
#define H_AUTO2   static std::string __str_##__LINE__(NLMISC::toString("%s:%d", __FUNCTION__, __LINE__)); static NLMISC::CHTimer __timer_##__LINE__(__str_##__LINE__.c_str()); NLMISC::CAutoTimer __auto_##__LINE__(&__timer_##__LINE__);
#define H_BEFORE(__name)   static NLMISC::CHTimer __name##_timer(#__name); __name##_timer.before();
#define H_AFTER(__name)   __name##_timer.after();
#define H_AUTO_INST(__name)   static NLMISC::CHTimer __name##_timer(#__name); NLMISC::CAutoTimerInst __name##_auto(&__name##_timer);
#define H_AUTO_DECL(__name)   static NLMISC::CHTimer __name##_timer(#__name);
#define H_AUTO_USE(__name)   NLMISC::CAutoTimer __name##_auto(&__name##_timer);
#define H_TIME(__name, __inst)

Detailed Description

Hierarchical timer.

Definition in file hierarchical_timer.h.


Define Documentation

#define ALLOW_TIMING_MEASURES

Definition at line 36 of file hierarchical_timer.h.

#define H_AFTER ( __name   )     __name##_timer.after();
#define H_AUTO ( __name   )     static NLMISC::CHTimer __name##_timer(#__name); NLMISC::CAutoTimer __name##_auto(&__name##_timer);

Definition at line 43 of file hierarchical_timer.h.

Referenced by NLNET::CStandardGateway::_broadcastModuleMessage(), NLNET::CModuleBase::_onModuleDown(), NLNET::CModuleBase::_onModuleUp(), NLNET::CModuleBase::_onProcessModuleMessage(), NLNET::CModuleBase::_receiveModuleMessageTask(), NL3D::CVertexStreamManager::activate(), NL3D::CMeshMRMGeom::activeInstance(), CEGUI::NeLRenderer::addQuad(), NL3D::CLodCharacterManager::addRenderCharacterKey(), NL3D::CPlayListManagerUser::animate(), NLNET::CUnifiedNetwork::autoCheck(), NLNET::CUnifiedNetwork::autoReconnect(), NLNET::CCallbackNetBase::baseUpdate(), NLNET::CCallbackNetBase::baseUpdate2(), NL3D::CLodCharacterManager::beginRender(), NL3D::CTextureFile::buildBitmapFromFile(), NLMISC::CEntityIdTranslator::checkEntity(), NLMISC::CEntityIdTranslator::checkEntityName(), NLPACS::CMoveContainer::clearModifiedList(), NL3D::CZone::clip(), NL3D::CWaterModel::clip(), NL3D::CTransformShape::clip(), NL3D::CQuadGridClipClusterQTreeNode::clip(), NL3D::CLandscapeModel::clipAndRenderLandscape(), NL3D::CClipTrav::clipShadowCasters(), NLNET::CGatewayL5Transport::close(), NLNET::CGatewayL3ClientTransport::close(), NLNET::CGatewayL3ClientTransport::connect(), NLLIGO::CPrimZone::contains(), NL3D::CDriverUser::createAnimationSet(), NL3D::CQuadGridClipManager::deleteCaseModels(), NLNET::CGatewayL3ClientTransport::deletePendingRoute(), NLNET::CStandardGateway::dispatchModuleMessage(), NL3D::CTextureFile::doGenerate(), NLPACS::CPrimitiveWorldImage::doMove(), CEGUI::NeLRenderer::doRender(), NL3D::CLodCharacterManager::endRender(), NLPACS::CMoveContainer::evalAllCollisions(), NLPACS::CMoveContainer::evalCollision(), NLPACS::CMoveContainer::evalOnePrimitiveCollision(), NLPACS::CMoveContainer::evalOneTerrainCollision(), NL3D::CLodCharacterManager::fastIntersect(), NL3D::CWaterModel::fillVB(), NL3D::CMeshBlockManager::flush(), NL3D::CCoarseMeshManager::flushRender(), NLPACS::CMoveContainer::freeAllOTInfo(), NL3D::CSkeletonModel::generateShadowMap(), NL3D::CLodCharacterShape::getAnimKey(), NLMISC::CEntityIdTranslator::getByEntity(), NLMISC::CEntityIdTranslator::getByUser(), NL3D::CWaterModel::getNumWantedVertices(), NL3D::CVisualCollisionEntity::getSurfaceInfo(), NLNET::CModuleBase::invokeModuleOperation(), NLMISC::CEntityIdTranslator::isEntityRegistered(), NLMISC::CEntityIdTranslator::isValidEntityName(), NL3D::CQuadGridClipManager::linkModel(), NLSOUND::CBackgroundSoundManager::load(), NLMISC::CEntityIdTranslator::load(), NLMISC::CSheetId::loadSheetId(), NL3D::CVertexStreamManager::lock(), NLNET::IService::main(), NL3D::CQuadGridClipManager::newCaseModels(), NLNET::CStandardGateway::onAddModuleProxy(), NLNET::CGatewayL5Transport::onAddTransport(), NLNET::CGatewayL3ServerTransport::onConnection(), NLNET::CGatewayL3ClientTransport::onDisconnection(), NLNET::CGatewayL3ServerTransport::onDisconnection(), NLNET::CGatewayL5Transport::onDispatchMessage(), NLNET::CGatewayL3ClientTransport::onDispatchMessage(), NLNET::CGatewayL3ServerTransport::onDispatchMessage(), NLNET::CStandardGateway::onModuleUpdate(), NLNET::CStandardGateway::onReceiveMessage(), NLNET::CStandardGateway::onReceiveModuleAdd(), NLNET::CStandardGateway::onReceiveModuleDistanceUpdate(), NLNET::CStandardGateway::onReceiveModuleMessage(), NLNET::CModuleBase::onReceiveModuleMessage(), NLNET::CStandardGateway::onReceiveModuleMessageHeader(), NLNET::CStandardGateway::onReceiveModuleRemove(), NLNET::CStandardGateway::onReceiveModuleSecurityUpdate(), NLNET::CStandardGateway::onReceiveModuleUpdate(), NLNET::CStandardGateway::onRemoveModuleProxy(), NLNET::CGatewayL5Transport::onRemoveTransport(), NLNET::CGatewayL5Transport::onServiceDown(), NLNET::CGatewayL5Transport::onServiceUp(), NLNET::CGatewayL5Transport::open(), NL3D::CLandscape::refine(), NLMISC::CEntityIdTranslator::registerEntity(), NL3D::CVegetableManager::render(), NL3D::CVegetableBlendLayerModel::render(), NL3D::CParticleSystemShape::render(), NL3D::CMeshMRMSkinnedGeom::render(), NL3D::CMeshMRMGeom::render(), NL3D::CMeshGeom::render(), NL3D::CShadowMapManager::renderGenerate(), NL3D::CShadowMapManager::renderProject(), CEGUI::NeLRenderer::renderQuad(), NL3D::CSkeletonModel::renderShadowSkins(), NL3D::CMeshGeom::renderSimpleWithMaterial(), NL3D::CMeshMRMGeom::renderSkin(), NL3D::CMeshGeom::renderSkin(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupGeom(), NL3D::CMeshMRMGeom::renderSkinGroupGeom(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupPrimitives(), NL3D::CMeshMRMGeom::renderSkinGroupPrimitives(), NL3D::CMeshMRMSkinnedGeom::renderSkinGroupSpecularRdrPass(), NL3D::CMeshMRMGeom::renderSkinGroupSpecularRdrPass(), NL3D::CSkeletonModel::renderSkinList(), NLMISC::CEntityIdTranslator::save(), NLNET::CSock::send(), NLNET::CL5Route::sendMessage(), NLNET::CL3ClientRoute::sendMessage(), NLNET::CL3ServerRoute::sendMessage(), NLNET::CStandardGateway::sendModuleMessage(), NLNET::CModuleProxy::sendModuleMessage(), NLMISC::CEntityIdTranslator::CEntity::serial(), NL3D::CPlayListManagerUser::setup(), NLSOUND::CClusteredSound::soundTraverse(), NL3D::CRenderTrav::traverse(), NL3D::CLoadBalancingTrav::traverse(), NL3D::CLightTrav::traverse(), NL3D::CHrcTrav::traverse(), NL3D::CClipTrav::traverse(), NL3D::CAnimDetailTrav::traverse(), NL3D::CWaterModel::traverseRender(), NL3D::CTransformShape::traverseRender(), NL3D::CSkeletonModel::traverseRender(), NLNET::CUnifiedNetwork::tryFlushAllQueues(), NLNET::uncbMsgProcessing(), NL3D::CVertexStreamManager::unlock(), NLMISC::CEntityIdTranslator::unregisterEntity(), NLSOUND::CSoundDriverFMod::update(), NLSOUND::CSourceDSound::update(), NLSOUND::CSoundDriverDSound::update(), NLSOUND::CClusteredSound::update(), NLSOUND::CAudioMixerUser::update(), NLNET::CGatewayL3ClientTransport::update(), NLNET::CGatewayL3ServerTransport::update(), NLNET::CCallbackServer::update(), NLNET::CCallbackClient::update(), NLNET::CCallbackServer::update2(), NLNET::CCallbackClient::update2(), NLSOUND::CBackgroundSoundManager::updateBackgroundStatus(), NL3D::CQuadGridClipManager::updateClustersFromCamera(), NLNET::CModuleManager::updateModules(), NLPACS::CMoveContainer::updatePrimitives(), NL3D::CMeshMRMSkinnedGeom::updateRawSkinNormal(), NL3D::CMeshMRMGeom::updateRawSkinNormal(), and NL3D::CVegetableSortBlock::updateSortBlock().

#define H_AUTO2   static std::string __str_##__LINE__(NLMISC::toString("%s:%d", __FUNCTION__, __LINE__)); static NLMISC::CHTimer __timer_##__LINE__(__str_##__LINE__.c_str()); NLMISC::CAutoTimer __auto_##__LINE__(&__timer_##__LINE__);
#define H_AUTO_DECL ( __name   )     static NLMISC::CHTimer __name##_timer(#__name);

Definition at line 57 of file hierarchical_timer.h.

#define H_AUTO_INST ( __name   )     static NLMISC::CHTimer __name##_timer(#__name); NLMISC::CAutoTimerInst __name##_auto(&__name##_timer);

Definition at line 53 of file hierarchical_timer.h.

#define H_AUTO_USE ( __name   )     NLMISC::CAutoTimer __name##_auto(&__name##_timer);
#define H_BEFORE ( __name   )     static NLMISC::CHTimer __name##_timer(#__name); __name##_timer.before();
#define H_TIME ( __name,
__inst   ) 
Value:
{ \
    static NLMISC::CHTimer  nl_h_timer(#__name); \
    nl_h_timer.before(); \
    __inst \
    nl_h_timer.after(); \
    }

Definition at line 61 of file hierarchical_timer.h.


Generated on Thu Jan 7 08:28:03 2010 for NeL by  doxygen 1.6.1