aboutsummaryrefslogtreecommitdiff
path: root/src/game/World.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/World.cpp')
-rw-r--r--src/game/World.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/game/World.cpp b/src/game/World.cpp
index daa305c8f92..761a2383c00 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -1418,6 +1418,17 @@ void World::DetectDBCLang()
sLog.outString("Using %s DBC Locale as default. All available DBC locales: %s",localeNames[m_defaultDbcLocale],availableLocalsStr.empty() ? "<none>" : availableLocalsStr.c_str());
}
+void World::RecordTimeDiff(const char *text)
+{
+ if(m_updateTimeCount != 1)
+ return;
+ sLog.outDebugInLine("Difftime ");
+ sLog.outDebugInLine(text);
+ time_t thisTime = time(NULL);
+ sLog.outDebug(": %u.", uint32(thisTime - m_currentTime));
+ m_currentTime = thisTime;
+}
+
/// Update the World !
void World::Update(time_t diff)
{
@@ -1429,6 +1440,7 @@ void World::Update(time_t diff)
sLog.outString("Update time diff: %u. Players online: %u.", m_updateTimeSum / m_updateTimeCount, GetActiveSessionCount());
m_updateTimeSum = m_updateTime;
m_updateTimeCount = 1;
+ m_currentTime = time(NULL);
}
else
{
@@ -1515,6 +1527,7 @@ void World::Update(time_t diff)
}
}
}
+ RecordTimeDiff("UpdateAuction");
/// <li> Handle session updates when the timer has passed
if (m_timers[WUPDATE_SESSIONS].Passed())
@@ -1523,6 +1536,7 @@ void World::Update(time_t diff)
UpdateSessions(diff);
}
+ RecordTimeDiff("UpdateSessions");
/// <li> Handle weather updates when the timer has passed
if (m_timers[WUPDATE_WEATHERS].Passed())
@@ -1554,6 +1568,7 @@ void World::Update(time_t diff)
m_timers[WUPDATE_UPTIME].Reset();
WorldDatabase.PExecute("UPDATE uptime SET uptime = %d, maxplayers = %d WHERE starttime = " I64FMTD, tmpDiff, maxClientsNum, uint64(m_startTime));
}
+ RecordTimeDiff("UpdateWeatherAndUptime");
/// <li> Handle all other objects
if (m_timers[WUPDATE_OBJECTS].Passed())
@@ -1570,9 +1585,11 @@ void World::Update(time_t diff)
sOutdoorPvPMgr.Update(diff);
}
+ RecordTimeDiff("UpdateMaps");
// execute callbacks from sql queries that were queued recently
UpdateResultQueue();
+ RecordTimeDiff("UpdateResultQueue");
///- Erase corpses once every 20 minutes
if (m_timers[WUPDATE_CORPSES].Passed())
@@ -1600,6 +1617,7 @@ void World::Update(time_t diff)
// And last, but not least handle the issued cli commands
ProcessCliCommands();
+ RecordTimeDiff("UpdateRemainingThings");
}
void World::ForceGameEventUpdate()