From 294793367f75be3ae9963f6c00dbdd896185500c Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 25 Oct 2019 21:01:16 +0200 Subject: [PATCH] Cache last CheckSourceLocation query. Just knowing that the query was performed is enough here -- this function adds a new source location entry, if there already isn't one. --- server/TracyWorker.cpp | 8 ++++++-- server/TracyWorker.hpp | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 4eeadaa1..37fed603 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -2563,9 +2563,13 @@ bool Worker::DispatchProcess( const QueueItem& ev, char*& ptr ) void Worker::CheckSourceLocation( uint64_t ptr ) { - if( m_data.sourceLocation.find( ptr ) == m_data.sourceLocation.end() ) + if( m_data.checkSrclocLast != ptr ) { - NewSourceLocation( ptr ); + m_data.checkSrclocLast = ptr; + if( m_data.sourceLocation.find( ptr ) == m_data.sourceLocation.end() ) + { + NewSourceLocation( ptr ); + } } } diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index d8350ac5..092e465f 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -214,6 +214,7 @@ private: std::pair threadDataLast = std::make_pair( std::numeric_limits::max(), nullptr ); std::pair ctxSwitchLast = std::make_pair( std::numeric_limits::max(), nullptr ); + uint64_t checkSrclocLast = 0; }; struct MbpsBlock