From bacbd4a782ca3681a587d8529a57ba3523bf65df Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 6 Jan 2009 15:48:42 -0600 Subject: *Update difftime record. --HG-- branch : trunk --- src/game/MapManager.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/game/MapManager.cpp') diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 26279cb76ec..933dbf9a9b5 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -246,17 +246,23 @@ MapManager::Update(time_t diff) if( !i_timer.Passed() ) return; + sWorld.RecordTimeDiff(NULL); ObjectAccessor::Instance().UpdatePlayers(i_timer.GetCurrent()); + sWorld.RecordTimeDiff("UpdatePlayers"); + for(MapMapType::iterator iter=i_maps.begin(); iter != i_maps.end(); ++iter) { checkAndCorrectGridStatesArray(); // debugging code, should be deleted some day iter->second->Update(i_timer.GetCurrent()); + sLog.outDebugInLine("Difftime Map %u ", iter->second->GetId()); + sWorld.RecordTimeDiff("UpdateMap"); } ObjectAccessor::Instance().Update(i_timer.GetCurrent()); for (TransportSet::iterator iter = m_Transports.begin(); iter != m_Transports.end(); ++iter) (*iter)->Update(i_timer.GetCurrent()); + sWorld.RecordTimeDiff("UpdateTransports"); i_timer.SetCurrent(0); } -- cgit v1.2.3 From 9a71deb785c6c9f5dd59437df07466a08b8f4b92 Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 7 Jan 2009 10:49:13 -0600 Subject: *Fix diff time record. --HG-- branch : trunk --- src/game/MapManager.cpp | 3 +-- src/game/World.cpp | 12 ++++++++++-- src/game/World.h | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src/game/MapManager.cpp') diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index 933dbf9a9b5..abdb3a599af 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -255,8 +255,7 @@ MapManager::Update(time_t diff) { checkAndCorrectGridStatesArray(); // debugging code, should be deleted some day iter->second->Update(i_timer.GetCurrent()); - sLog.outDebugInLine("Difftime Map %u ", iter->second->GetId()); - sWorld.RecordTimeDiff("UpdateMap"); + sWorld.RecordTimeDiff("UpdateMap %u", iter->second->GetId()); } ObjectAccessor::Instance().Update(i_timer.GetCurrent()); diff --git a/src/game/World.cpp b/src/game/World.cpp index 90bee222176..749b9dc8826 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1418,7 +1418,7 @@ void World::DetectDBCLang() sLog.outString("Using %s DBC Locale as default. All available DBC locales: %s",localeNames[m_defaultDbcLocale],availableLocalsStr.empty() ? "" : availableLocalsStr.c_str()); } -void World::RecordTimeDiff(const char *text) +void World::RecordTimeDiff(const char *text, ...) { if(m_updateTimeCount != 1) return; @@ -1427,8 +1427,16 @@ void World::RecordTimeDiff(const char *text) m_currentTime = getMSTime(); return; } + sLog.outDebugInLine("Difftime "); - sLog.outDebugInLine(text); + + va_list ap; + char str [256]; + va_start(ap, text); + vsnprintf(str,256,text, ap ); + va_end(ap); + sLog.outDebugInLine(str); + uint32 thisTime = getMSTime(); sLog.outDebug(": %u.", getMSTimeDiff(m_currentTime, thisTime)); m_currentTime = thisTime; diff --git a/src/game/World.h b/src/game/World.h index 732b6d05812..0bf88e4fd2d 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -517,7 +517,7 @@ class World void SetScriptsVersion(char const* version) { m_ScriptsVersion = version ? version : "unknown scripting library"; } char const* GetScriptsVersion() { return m_ScriptsVersion.c_str(); } - void RecordTimeDiff(const char * text); + void RecordTimeDiff(const char * text, ...); protected: void _UpdateGameTime(); void ScriptsProcess(); -- cgit v1.2.3 From b57516e170cb3dd09ee7d4335dee0f8bbbc4a1df Mon Sep 17 00:00:00 2001 From: megamage Date: Thu, 8 Jan 2009 14:57:46 -0600 Subject: *Add config option MinRecordUpdateTimeDiff to prevent timediff spams. --HG-- branch : trunk --- src/game/MapManager.cpp | 1 + src/game/World.cpp | 19 ++++++++++++------- src/game/World.h | 1 + src/trinitycore/trinitycore.conf.dist | 6 +++++- 4 files changed, 19 insertions(+), 8 deletions(-) (limited to 'src/game/MapManager.cpp') diff --git a/src/game/MapManager.cpp b/src/game/MapManager.cpp index abdb3a599af..fdd62d2d4ce 100644 --- a/src/game/MapManager.cpp +++ b/src/game/MapManager.cpp @@ -259,6 +259,7 @@ MapManager::Update(time_t diff) } ObjectAccessor::Instance().Update(i_timer.GetCurrent()); + sWorld.RecordTimeDiff("UpdateObjectAccessor"); for (TransportSet::iterator iter = m_Transports.begin(); iter != m_Transports.end(); ++iter) (*iter)->Update(i_timer.GetCurrent()); sWorld.RecordTimeDiff("UpdateTransports"); diff --git a/src/game/World.cpp b/src/game/World.cpp index 5abdb17d6cf..838e2013270 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -998,6 +998,7 @@ void World::LoadConfigSettings(bool reload) m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false); m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false); m_configs[CONFIG_INTERVAL_LOG_UPDATE] = sConfig.GetIntDefault("RecordUpdateTimeDiffInterval", 60000); + m_configs[CONFIG_MIN_LOG_UPDATE] = sConfig.GetIntDefault("MinRecordUpdateTimeDiff", 10); std::string forbiddenmaps = sConfig.GetStringDefault("ForbiddenMaps", ""); char * forbiddenMaps = new char[forbiddenmaps.length() + 1]; @@ -1428,14 +1429,18 @@ void World::RecordTimeDiff(const char *text, ...) return; } - uint32 thisTime = getMSTime(); + uint32 thisTime = getMSTime(); + uint32 diff = getMSTimeDiff(m_currentTime, thisTime); - va_list ap; - char str [256]; - va_start(ap, text); - vsnprintf(str,256,text, ap ); - va_end(ap); - sLog.outDetail("Difftime %s: %u.", str, getMSTimeDiff(m_currentTime, thisTime)); + if(diff > m_configs[CONFIG_MIN_LOG_UPDATE]) + { + va_list ap; + char str [256]; + va_start(ap, text); + vsnprintf(str,256,text, ap ); + va_end(ap); + sLog.outDetail("Difftime %s: %u.", str, diff); + } m_currentTime = thisTime; } diff --git a/src/game/World.h b/src/game/World.h index 0bf88e4fd2d..80b876ccaf3 100644 --- a/src/game/World.h +++ b/src/game/World.h @@ -197,6 +197,7 @@ enum WorldConfigs CONFIG_NO_RESET_TALENT_COST, CONFIG_SHOW_KICK_IN_WORLD, CONFIG_INTERVAL_LOG_UPDATE, + CONFIG_MIN_LOG_UPDATE, CONFIG_ENABLE_SINFO_LOGIN, CONFIG_VALUE_COUNT diff --git a/src/trinitycore/trinitycore.conf.dist b/src/trinitycore/trinitycore.conf.dist index db4a22fe223..91b0209acd4 100644 --- a/src/trinitycore/trinitycore.conf.dist +++ b/src/trinitycore/trinitycore.conf.dist @@ -1265,6 +1265,9 @@ Ra.Secure = 1 # >0 = Interval # 0 = Disable # +# MinRecordUpdateTimeDiff +# only record update time diff which is greater than this value +# # PlayerStart.String # If set to anything else than "", this string will be displayed to players when they login # to a newly created character. @@ -1285,4 +1288,5 @@ PvPToken.ItemCount = 1 NoResetTalentsCost = 0 ShowKickInWorld = 0 RecordUpdateTimeDiffInterval = 60000 -PlayerStart.String = "" \ No newline at end of file +MinRecordUpdateTimeDiff = 10 +PlayerStart.String = "" -- cgit v1.2.3