Add zone end messages with 32 and 16 byte time deltas.

Change in test application:
    compressed data: 130 Mpbps -> 105 Mbps
    uncompressed: 830 Mbps -> 740 Mbps
This commit is contained in:
Bartosz Taudul
2026-05-06 19:09:19 +02:00
parent b1768b98a5
commit 4d094c108d
5 changed files with 86 additions and 4 deletions
+26 -1
View File
@@ -4510,7 +4510,13 @@ bool Worker::Process( const QueueItem& ev )
ProcessZoneBeginAllocSrcLocCallstack( ev.zoneBeginLean );
break;
case QueueType::ZoneEnd:
ProcessZoneEnd( ev.zoneEnd );
ProcessZoneEnd64( ev.zoneEnd );
break;
case QueueType::ZoneEnd32:
ProcessZoneEnd32( ev.zoneEnd32 );
break;
case QueueType::ZoneEnd16:
ProcessZoneEnd16( ev.zoneEnd16 );
break;
case QueueType::ZoneValidation:
ProcessZoneValidation( ev.zoneValidation );
@@ -5009,6 +5015,25 @@ void Worker::ProcessZoneEnd( const QueueZoneEnd& ev )
#endif
}
void Worker::ProcessZoneEnd64( const QueueZoneEnd& ev )
{
QueueZoneEnd unpack = ev;
if( ev.time >= 0 ) unpack.time += ProtocolOffset32Bit;
ProcessZoneEnd( unpack );
}
void Worker::ProcessZoneEnd32( const QueueZoneEnd32& ev )
{
QueueZoneEnd unpack = { .time = int64_t( ev.time + ProtocolOffset16Bit ) };
ProcessZoneEnd( unpack );
}
void Worker::ProcessZoneEnd16( const QueueZoneEnd16& ev )
{
QueueZoneEnd unpack = { .time = ev.time };
ProcessZoneEnd( unpack );
}
void Worker::ZoneStackFailure( uint64_t thread, const ZoneEvent* ev )
{
m_failure = Failure::ZoneStack;