From 065ba4ce5affedadc1ef2851c3860278e7035dbf Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Sat, 9 Nov 2019 23:34:05 +0100 Subject: [PATCH] Load zones into magic vectors. --- server/TracyWorker.cpp | 42 +++++++++++++++++++----------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 22ad58bf..d8da0cde 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -5112,18 +5112,15 @@ void Worker::CountZoneStatistics( ZoneEvent* zone ) } #endif -void Worker::ReadTimeline( FileRead& f, Vector>& vec, uint64_t size, int64_t& refTime, int32_t& childIdx ) +void Worker::ReadTimeline( FileRead& f, Vector>& _vec, uint64_t size, int64_t& refTime, int32_t& childIdx ) { assert( size != 0 ); + auto& vec = *(Vector*)( &_vec ); + vec.set_magic(); vec.reserve_exact( size, m_slab ); m_data.zonesCnt += size; - auto zone = (ZoneEvent*)m_slab.AllocBig( sizeof( ZoneEvent ) * size ); - auto zptr = zone; - auto vptr = vec.data(); - for( uint64_t i=0; i>& vec, uint6 CountZoneStatistics( zone ); #endif } - while( ++zone != zptr ); + while( ++zone != end ); } -void Worker::ReadTimelinePre042( FileRead& f, Vector>& vec, uint64_t size, int fileVer ) +void Worker::ReadTimelinePre042( FileRead& f, Vector>& _vec, uint64_t size, int fileVer ) { assert( fileVer <= FileVersion( 0, 4, 1 ) ); assert( size != 0 ); + auto& vec = *(Vector*)( &_vec ); + vec.set_magic(); vec.reserve_exact( size, m_slab ); m_data.zonesCnt += size; - - for( uint64_t i=0; i(); - vec[i] = zone; int64_t start; f.Read( start ); zone->SetStart( start - m_data.baseTime ); @@ -5192,21 +5190,19 @@ void Worker::ReadTimelinePre042( FileRead& f, Vector>& vec, CountZoneStatistics( zone ); #endif } + while( ++zone != end ); } -void Worker::ReadTimelinePre0510( FileRead& f, Vector>& vec, uint64_t size, int64_t& refTime, int fileVer ) +void Worker::ReadTimelinePre0510( FileRead& f, Vector>& _vec, uint64_t size, int64_t& refTime, int fileVer ) { assert( fileVer <= FileVersion( 0, 5, 9 ) ); assert( size != 0 ); + auto& vec = *(Vector*)( &_vec ); + vec.set_magic(); vec.reserve_exact( size, m_slab ); m_data.zonesCnt += size; - auto zone = (ZoneEvent*)m_slab.AllocBig( sizeof( ZoneEvent ) * size ); - auto zptr = zone; - auto vptr = vec.data(); - for( uint64_t i=0; i>& vec CountZoneStatistics( zone ); #endif } - while( ++zone != zptr ); + while( ++zone != end ); } void Worker::ReadTimeline( FileRead& f, Vector>& vec, uint64_t size, int64_t& refTime, int64_t& refGpuTime, int32_t& childIdx )