From f6af913fd317be7f7df1093777aebedae7379ec6 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Fri, 10 Nov 2017 17:34:11 +0100 Subject: [PATCH] Remove ability to disable LZ4 compression. --- client/TracyProfiler.cpp | 13 +----- common/TracyProtocol.hpp | 1 - server/TracyView.cpp | 96 ++++++++-------------------------------- server/TracyView.hpp | 1 - 4 files changed, 19 insertions(+), 92 deletions(-) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index cc94360e..7edc92f3 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -176,12 +176,6 @@ void Profiler::Worker() while( m_timeBegin.load( std::memory_order_relaxed ) == 0 ) std::this_thread::sleep_for( std::chrono::milliseconds( 10 ) ); WelcomeMessage welcome; -#ifdef TRACY_DISABLE_LZ4 - // notify client that lz4 compression is disabled - welcome.lz4 = 0; -#else - welcome.lz4 = 1; -#endif welcome.timerMul = m_timerMul; welcome.initBegin = s_initTime.val; welcome.initEnd = m_timeBegin.load( std::memory_order_relaxed ); @@ -274,14 +268,9 @@ Profiler::DequeueStatus Profiler::Dequeue( moodycamel::ConsumerToken& token ) bool Profiler::SendData( const char* data, size_t len ) { -#ifdef TRACY_DISABLE_LZ4 - if( m_sock->Send( data, (int)len ) == -1 ) return false; -#else const lz4sz_t lz4sz = LZ4_compress_fast_continue( m_stream, data, m_lz4Buf + sizeof( lz4sz_t ), (int)len, LZ4Size, 1 ); memcpy( m_lz4Buf, &lz4sz, sizeof( lz4sz ) ); - if( m_sock->Send( m_lz4Buf, lz4sz + sizeof( lz4sz_t ) ) == -1 ) return false; -#endif - return true; + return m_sock->Send( m_lz4Buf, lz4sz + sizeof( lz4sz_t ) ) != -1; } bool Profiler::SendString( uint64_t str, const char* ptr, QueueType type ) diff --git a/common/TracyProtocol.hpp b/common/TracyProtocol.hpp index 9d430067..ac0bf491 100644 --- a/common/TracyProtocol.hpp +++ b/common/TracyProtocol.hpp @@ -33,7 +33,6 @@ enum { WelcomeMessageProgramNameSize = 64 }; #pragma pack( 1 ) struct WelcomeMessage { - uint8_t lz4; double timerMul; uint64_t initBegin; uint64_t initEnd; diff --git a/server/TracyView.cpp b/server/TracyView.cpp index b11d1dac..aa75edf5 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -433,13 +433,11 @@ void View::Worker() std::chrono::time_point t0; - uint8_t lz4; uint64_t bytes = 0; { WelcomeMessage welcome; if( !m_sock.Read( &welcome, sizeof( welcome ), &tv, ShouldExit ) ) goto close; - lz4 = welcome.lz4; m_timerMul = welcome.timerMul; m_frames.push_back( welcome.initBegin * m_timerMul ); m_frames.push_back( welcome.initEnd * m_timerMul ); @@ -466,42 +464,27 @@ void View::Worker() { if( m_shutdown.load( std::memory_order_relaxed ) ) return; - if( lz4 ) + auto buf = m_buffer + m_bufferOffset; + char lz4buf[LZ4Size]; + lz4sz_t lz4sz; + if( !m_sock.Read( &lz4sz, sizeof( lz4sz ), &tv, ShouldExit ) ) goto close; + if( !m_sock.Read( lz4buf, lz4sz, &tv, ShouldExit ) ) goto close; + bytes += sizeof( lz4sz ) + lz4sz; + + auto sz = LZ4_decompress_safe_continue( m_stream, lz4buf, buf, lz4sz, TargetFrameSize ); + assert( sz >= 0 ); + + const char* ptr = buf; + const char* end = buf + sz; + while( ptr < end ) { - auto buf = m_buffer + m_bufferOffset; - char lz4buf[LZ4Size]; - lz4sz_t lz4sz; - if( !m_sock.Read( &lz4sz, sizeof( lz4sz ), &tv, ShouldExit ) ) goto close; - if( !m_sock.Read( lz4buf, lz4sz, &tv, ShouldExit ) ) goto close; - bytes += sizeof( lz4sz ) + lz4sz; - - auto sz = LZ4_decompress_safe_continue( m_stream, lz4buf, buf, lz4sz, TargetFrameSize ); - assert( sz >= 0 ); - - const char* ptr = buf; - const char* end = buf + sz; - while( ptr < end ) - { - auto ev = (QueueItem*)ptr; - DispatchProcess( *ev, ptr ); - } - - m_bufferOffset += sz; - if( m_bufferOffset > TargetFrameSize * 2 ) m_bufferOffset = 0; - } - else - { - QueueItem ev; - if( !m_sock.Read( &ev.hdr, sizeof( QueueHeader ), &tv, ShouldExit ) ) goto close; - const auto payload = QueueDataSize[ev.hdr.idx] - sizeof( QueueHeader ); - if( payload > 0 ) - { - if( !m_sock.Read( ((char*)&ev) + sizeof( QueueHeader ), payload, &tv, ShouldExit ) ) goto close; - } - bytes += sizeof( QueueHeader ) + payload; // ignores string transfer - DispatchProcess( ev ); + auto ev = (QueueItem*)ptr; + DispatchProcess( *ev, ptr ); } + m_bufferOffset += sz; + if( m_bufferOffset > TargetFrameSize * 2 ) m_bufferOffset = 0; + HandlePostponedPlots(); auto t1 = std::chrono::high_resolution_clock::now(); @@ -544,49 +527,6 @@ close: } } -void View::DispatchProcess( const QueueItem& ev ) -{ - if( ev.hdr.type == QueueType::CustomStringData || ev.hdr.type == QueueType::StringData || ev.hdr.type == QueueType::ThreadName || ev.hdr.type == QueueType::PlotName || ev.hdr.type == QueueType::MessageData || ev.hdr.type == QueueType::SourceLocationPayload ) - { - timeval tv; - tv.tv_sec = 0; - tv.tv_usec = 10000; - - char buf[TargetFrameSize]; - uint16_t sz; - m_sock.Read( &sz, sizeof( sz ), &tv, ShouldExit ); - m_sock.Read( buf, sz, &tv, ShouldExit ); - switch( ev.hdr.type ) - { - case QueueType::CustomStringData: - AddCustomString( ev.stringTransfer.ptr, std::string( buf, buf+sz ) ); - break; - case QueueType::StringData: - AddString( ev.stringTransfer.ptr, std::string( buf, buf+sz ) ); - break; - case QueueType::ThreadName: - AddThreadString( ev.stringTransfer.ptr, std::string( buf, buf+sz ) ); - break; - case QueueType::PlotName: - HandlePlotName( ev.stringTransfer.ptr, std::string( buf, buf+sz ) ); - break; - case QueueType::MessageData: - AddMessageData( ev.stringTransfer.ptr, buf, sz ); - break; - case QueueType::SourceLocationPayload: - AddSourceLocationPayload( ev.stringTransfer.ptr, buf, sz ); - break; - default: - assert( false ); - break; - } - } - else - { - Process( ev ); - } -} - void View::DispatchProcess( const QueueItem& ev, const char*& ptr ) { ptr += QueueDataSize[ev.hdr.idx]; diff --git a/server/TracyView.hpp b/server/TracyView.hpp index 4681be2c..1f380f94 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -117,7 +117,6 @@ private: void Worker(); - void DispatchProcess( const QueueItem& ev ); void DispatchProcess( const QueueItem& ev, const char*& ptr ); void ServerQuery( uint8_t type, uint64_t data );