aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2020-07-28 17:46:38 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-24 13:12:21 +0100
commitf220e46c50301b1d77d321bf6eed5093370a2fef (patch)
tree4acc628542aca3610fe83c6129f79e029e243f57 /src
parentb3f2ff97ffae7012904e149271ff2dc080890829 (diff)
Core/Metric: Add new metric in World::UpdateSessions()
Add new metric about how long adding sessions took (cherry picked from commit 5cd93df9eec1d1b310916fefecc9282e02e9cf2d)
Diffstat (limited to 'src')
-rw-r--r--src/common/Metric/Metric.h3
-rw-r--r--src/server/game/World/World.cpp13
2 files changed, 12 insertions, 4 deletions
diff --git a/src/common/Metric/Metric.h b/src/common/Metric/Metric.h
index 599d432d65d..ed455b6b8e4 100644
--- a/src/common/Metric/Metric.h
+++ b/src/common/Metric/Metric.h
@@ -170,6 +170,7 @@ MetricStopWatch<LoggerType> MakeMetricStopWatch(LoggerType&& loggerFunc)
#define TC_METRIC_VALUE(category, value) ((void)0)
#define TC_METRIC_TIMER(category, ...) ((void)0)
#define TC_METRIC_DETAILED_TIMER(category, ...) ((void)0)
+#define TC_METRIC_DETAILED_NO_THRESHOLD_TIMER(category, ...) ((void)0)
#else
# if TRINITY_PLATFORM != TRINITY_PLATFORM_WINDOWS
#define TC_METRIC_EVENT(category, title, description) \
@@ -213,8 +214,10 @@ MetricStopWatch<LoggerType> MakeMetricStopWatch(LoggerType&& loggerFunc)
if (sMetric->ShouldLog(category, duration)) \
sMetric->LogValue(category, duration, { __VA_ARGS__ }); \
});
+#define TC_METRIC_DETAILED_NO_THRESHOLD_TIMER(category, ...) TC_METRIC_TIMER(category, __VA_ARGS__)
# else
#define TC_METRIC_DETAILED_TIMER(category, ...) ((void)0)
+#define TC_METRIC_DETAILED_NO_THRESHOLD_TIMER(category, ...) ((void)0)
# endif
#endif
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index fd2b5c2a557..a2931e2f70a 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -3337,10 +3337,15 @@ void World::UpdateSessions(uint32 diff)
while (_linkSocketQueue.next(linkInfo))
ProcessLinkInstanceSocket(std::move(linkInfo));
- ///- Add new sessions
- WorldSession* sess = nullptr;
- while (addSessQueue.next(sess))
- AddSession_ (sess);
+ {
+ TC_METRIC_DETAILED_NO_THRESHOLD_TIMER("world_update_time",
+ TC_METRIC_TAG("type", "Add sessions"),
+ TC_METRIC_TAG("parent_type", "Update sessions"));
+ ///- Add new sessions
+ WorldSession* sess = nullptr;
+ while (addSessQueue.next(sess))
+ AddSession_(sess);
+ }
///- Then send an update signal to remaining ones
for (SessionMap::iterator itr = m_sessions.begin(), next; itr != m_sessions.end(); itr = next)