Display compression ratio and uncompressed data throughput.

This commit is contained in:
Bartosz Taudul 2017-11-23 01:23:40 +01:00
parent a71c81bc41
commit 79dec4eafe
2 changed files with 8 additions and 1 deletions

View File

@ -125,6 +125,7 @@ View::View( const char* addr )
, m_sourceLocationExpand( { 0 } ) , m_sourceLocationExpand( { 0 } )
, m_zonesCnt( 0 ) , m_zonesCnt( 0 )
, m_mbps( 64 ) , m_mbps( 64 )
, m_compRatio( 1 )
, m_stream( LZ4_createStreamDecode() ) , m_stream( LZ4_createStreamDecode() )
, m_buffer( new char[TargetFrameSize*3 + 1] ) , m_buffer( new char[TargetFrameSize*3 + 1] )
, m_bufferOffset( 0 ) , m_bufferOffset( 0 )
@ -412,6 +413,7 @@ void View::Worker()
std::chrono::time_point<std::chrono::high_resolution_clock> t0; std::chrono::time_point<std::chrono::high_resolution_clock> t0;
uint64_t bytes = 0; uint64_t bytes = 0;
uint64_t decBytes = 0;
{ {
WelcomeMessage welcome; WelcomeMessage welcome;
@ -451,6 +453,7 @@ void View::Worker()
auto sz = LZ4_decompress_safe_continue( m_stream, lz4buf, buf, lz4sz, TargetFrameSize ); auto sz = LZ4_decompress_safe_continue( m_stream, lz4buf, buf, lz4sz, TargetFrameSize );
assert( sz >= 0 ); assert( sz >= 0 );
decBytes += sz;
char* ptr = buf; char* ptr = buf;
const char* end = buf + sz; const char* end = buf + sz;
@ -477,8 +480,10 @@ void View::Worker()
std::lock_guard<NonRecursiveBenaphore> lock( m_mbpslock ); std::lock_guard<NonRecursiveBenaphore> lock( m_mbpslock );
m_mbps.erase( m_mbps.begin() ); m_mbps.erase( m_mbps.begin() );
m_mbps.emplace_back( bytes / ( td * 125.f ) ); m_mbps.emplace_back( bytes / ( td * 125.f ) );
m_compRatio = float( bytes ) / decBytes;
t0 = t1; t0 = t1;
bytes = 0; bytes = 0;
decBytes = 0;
} }
if( m_terminate ) if( m_terminate )
@ -1540,9 +1545,9 @@ void View::DrawConnection()
const auto ty = ImGui::GetFontSize(); const auto ty = ImGui::GetFontSize();
const auto cs = ty * 0.9f; const auto cs = ty * 0.9f;
ImGui::Begin( m_addr.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_ShowBorders );
{ {
std::lock_guard<NonRecursiveBenaphore> lock( m_mbpslock ); std::lock_guard<NonRecursiveBenaphore> lock( m_mbpslock );
ImGui::Begin( m_addr.c_str(), nullptr, ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_ShowBorders );
const auto mbps = m_mbps.back(); const auto mbps = m_mbps.back();
char buf[64]; char buf[64];
if( mbps < 0.1f ) if( mbps < 0.1f )
@ -1556,6 +1561,7 @@ void View::DrawConnection()
ImGui::Dummy( ImVec2( cs, 0 ) ); ImGui::Dummy( ImVec2( cs, 0 ) );
ImGui::SameLine(); ImGui::SameLine();
ImGui::PlotLines( buf, m_mbps.data(), m_mbps.size(), 0, nullptr, 0, std::numeric_limits<float>::max(), ImVec2( 150, 0 ) ); ImGui::PlotLines( buf, m_mbps.data(), m_mbps.size(), 0, nullptr, 0, std::numeric_limits<float>::max(), ImVec2( 150, 0 ) );
ImGui::Text( "Ratio %.1f%% Real: %6.2f Mbps", m_compRatio * 100.f, mbps / m_compRatio );
} }
ImGui::Text( "Memory usage: %.2f MB", memUsage.load( std::memory_order_relaxed ) / ( 1024.f * 1024.f ) ); ImGui::Text( "Memory usage: %.2f MB", memUsage.load( std::memory_order_relaxed ) / ( 1024.f * 1024.f ) );

View File

@ -191,6 +191,7 @@ private:
NonRecursiveBenaphore m_mbpslock; NonRecursiveBenaphore m_mbpslock;
std::vector<float> m_mbps; std::vector<float> m_mbps;
float m_compRatio;
// not used for vis - no need to lock // not used for vis - no need to lock
flat_hash_set<uint64_t, nohash<uint64_t>> m_pendingStrings; flat_hash_set<uint64_t, nohash<uint64_t>> m_pendingStrings;