Hierarchical timer. More...
#include <string>#include <vector>#include <algorithm>#include "types_nl.h"#include "time_nl.h"#include "debug.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) |
Hierarchical timer.
Definition in file hierarchical_timer.h.
| #define ALLOW_TIMING_MEASURES |
Definition at line 36 of file hierarchical_timer.h.
| #define H_AFTER | ( | __name | ) | __name##_timer.after(); |
Definition at line 50 of file hierarchical_timer.h.
Referenced by NL3D::CQuadGridClipClusterQTreeNode::clip(), NL3D::CLandscapeModel::clipAndRenderLandscape(), NL3D::CLandscape::render(), NL3D::CClipTrav::traverse(), and NLSOUND::CBackgroundSoundManager::updateBackgroundStatus().
| #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__); |
Definition at line 46 of file hierarchical_timer.h.
Referenced by NL3D::CTextContextUser::clear(), NL3D::CTextContextUser::createLetterColors(), NL3D::CDriverUser::drawBitmap(), NL3D::CDriverUser::drawLine(), NL3D::CDriverUser::drawQuad(), NL3D::CDriverUser::drawQuads(), NL3D::CDriverUser::drawTriangle(), NL3D::CDriverUser::drawWiredQuad(), NL3D::CTextContextUser::erase(), NL3D::CTextContextUser::getFontSize(), NL3D::CTextContextUser::getHotSpot(), NL3D::UTextContext::CStringInfo::getHotSpotVector(), NL3D::CTextContextUser::getKeep800x600Ratio(), NL3D::CTextContextUser::getLastXBound(), NL3D::CTextContextUser::getScaleX(), NL3D::CTextContextUser::getScaleY(), NL3D::CTextContextUser::getShadeColor(), NL3D::CTextContextUser::getShaded(), NL3D::CTextContextUser::getStringInfo(), NL3D::CTextContextUser::isSameLetterColors(), NL3D::CTextContextUser::printAt(), NL3D::CTextContextUser::printClipAt(), NL3D::CTextContextUser::printClipAtUnProjected(), NL3D::CTextContextUser::printfAt(), NL3D::CTextContextUser::setColor(), NL3D::CTextContextUser::setFontSize(), NL3D::CTextContextUser::setHotSpot(), NL3D::CTextContextUser::setKeep800x600Ratio(), NL3D::CTextContextUser::setLetterColors(), NL3D::CTextContextUser::setScaleX(), NL3D::CTextContextUser::setScaleY(), NL3D::CTextContextUser::setShadeColor(), NL3D::CTextContextUser::setShaded(), NL3D::CTextContextUser::setShadeExtent(), and NL3D::CTextContextUser::textPush().
| #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); |
Definition at line 58 of file hierarchical_timer.h.
Referenced by NL3D::CCoarseMeshManager::addMesh(), NL3D::CQuadGridClipCluster::clip(), NL3D::CQuadGridClipClusterQTreeNode::noFrustumClip(), NL3D::CMeshMRMSkinnedGeom::renderShadowSkinGeom(), NL3D::CMeshMRMGeom::renderShadowSkinGeom(), NL3D::CMeshMRMSkinnedGeom::renderShadowSkinPrimitives(), and NL3D::CMeshMRMGeom::renderShadowSkinPrimitives().
| #define H_BEFORE | ( | __name | ) | static NLMISC::CHTimer __name##_timer(#__name); __name##_timer.before(); |
Definition at line 49 of file hierarchical_timer.h.
Referenced by NL3D::CQuadGridClipClusterQTreeNode::clip(), NL3D::CLandscapeModel::clipAndRenderLandscape(), NL3D::CLandscape::render(), NL3D::CClipTrav::traverse(), and NLSOUND::CBackgroundSoundManager::updateBackgroundStatus().
| #define H_TIME | ( | __name, | |||
| __inst | ) |
{ \
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.
1.6.1