From 51bae7855d46cab8d9c97fcacbd01d9bed920201 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 27 Mar 2020 02:00:26 +0100 Subject: [PATCH] Display number of in-flight queries. --- server/TracyView.cpp | 36 ++++++++++++++++++++++++++++-------- server/TracyWorker.cpp | 2 +- server/TracyWorker.hpp | 3 ++- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 2b8b85e2..dd2dd0f0 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -658,16 +658,34 @@ void View::DrawNotificationArea() { auto& io = ImGui::GetIO(); const auto ty = ImGui::GetFontSize(); - const auto sqs = m_worker.GetSendQueueSize(); - if( sqs != 0 ) + if( m_worker.IsConnected() ) { - ImGui::SameLine(); - TextColoredUnformatted( ImVec4( 1, 0, 0, 1 ), ICON_FA_TACHOMETER_ALT ); - if( ImGui::IsItemHovered() ) + const auto sqs = m_worker.GetSendQueueSize(); + if( sqs != 0 ) { - ImGui::BeginTooltip(); - TextFocused( "Query backlog:", RealToString( sqs ) ); - ImGui::EndTooltip(); + ImGui::SameLine(); + TextColoredUnformatted( ImVec4( 1, 0, 0, 1 ), ICON_FA_TACHOMETER_ALT ); + if( ImGui::IsItemHovered() ) + { + ImGui::BeginTooltip(); + TextFocused( "Query backlog:", RealToString( sqs ) ); + ImGui::EndTooltip(); + } + } + else + { + const auto sif = m_worker.GetSendInFlight(); + if( sif != 0 ) + { + ImGui::SameLine(); + TextColoredUnformatted( ImVec4( 1, 0.75f, 0, 1 ), ICON_FA_TACHOMETER_ALT ); + if( ImGui::IsItemHovered() ) + { + ImGui::BeginTooltip(); + TextFocused( "Queries in flight:", RealToString( sif ) ); + ImGui::EndTooltip(); + } + } } } auto& crash = m_worker.GetCrashEvent(); @@ -872,6 +890,8 @@ bool View::DrawConnection() ImGui::Text( "%6.2f Mbps", mbps / m_worker.GetCompRatio() ); TextFocused( "Data transferred:", MemSizeToString( m_worker.GetDataTransferred() ) ); TextFocused( "Query backlog:", RealToString( m_worker.GetSendQueueSize() ) ); + ImGui::SameLine(); + TextFocused( "+", RealToString( m_worker.GetSendInFlight() ) ); } TextFocused( "Memory usage:", MemSizeToString( memUsage ) ); diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index bed03b7c..4c810585 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -2717,7 +2717,7 @@ void Worker::Exec() } } - m_serverQuerySpaceLeft = ( m_sock.GetSendBufSize() / ServerQueryPacketSize ) - ServerQueryPacketSize; // leave space for terminate request + m_serverQuerySpaceBase = m_serverQuerySpaceLeft = ( m_sock.GetSendBufSize() / ServerQueryPacketSize ) - ServerQueryPacketSize; // leave space for terminate request m_hasData.store( true, std::memory_order_release ); LZ4_setStreamDecode( (LZ4_streamDecode_t*)m_stream, nullptr, 0 ); diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index bb168317..540df639 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -495,6 +495,7 @@ public: const std::vector& GetMbpsData() const { return m_mbpsData.mbps; } float GetCompRatio() const { return m_mbpsData.compRatio; } size_t GetSendQueueSize() const { return m_mbpsData.queue; } + size_t GetSendInFlight() const { return m_serverQuerySpaceBase - m_serverQuerySpaceLeft; } uint64_t GetDataTransferred() const { return m_mbpsData.transferred; } bool HasData() const { return m_hasData.load( std::memory_order_acquire ); } @@ -804,7 +805,7 @@ private: PlotData* m_sysTimePlot = nullptr; Vector m_serverQueryQueue; - size_t m_serverQuerySpaceLeft; + size_t m_serverQuerySpaceLeft, m_serverQuerySpaceBase; unordered_flat_map m_frameImageStaging; char* m_frameImageBuffer = nullptr;