mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-10 02:31:48 +00:00
Reduce data collection if TRACY_NO_STATISTICS is defined.
Statistical data collection is only useful if it's meant to be used. Otherwise it only incurs CPU and memory cost.
This commit is contained in:
parent
4baea4a74f
commit
7a4e7cbf86
@ -2703,6 +2703,10 @@ void View::DrawMessages()
|
|||||||
void View::DrawFindZone()
|
void View::DrawFindZone()
|
||||||
{
|
{
|
||||||
ImGui::Begin( "Find Zone", &m_findZone.show );
|
ImGui::Begin( "Find Zone", &m_findZone.show );
|
||||||
|
#ifdef TRACY_NO_STATISTICS
|
||||||
|
ImGui::TextWrapped( "Collection of statistical data is disabled in this build." );
|
||||||
|
ImGui::TextWrapped( "Rebuild without the TRACY_NO_STATISTICS macro to enable zone search." );
|
||||||
|
#else
|
||||||
ImGui::InputText( "", m_findZone.pattern, 1024 );
|
ImGui::InputText( "", m_findZone.pattern, 1024 );
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
|
||||||
@ -3243,6 +3247,7 @@ void View::DrawFindZone()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
}
|
}
|
||||||
@ -3480,6 +3485,7 @@ const GpuEvent* View::GetZoneParent( const GpuEvent& zone ) const
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
void View::FindZones()
|
void View::FindZones()
|
||||||
{
|
{
|
||||||
const auto match = m_worker.GetMatchingSourceLocation( m_findZone.pattern );
|
const auto match = m_worker.GetMatchingSourceLocation( m_findZone.pattern );
|
||||||
@ -3494,5 +3500,6 @@ void View::FindZones()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,9 @@ private:
|
|||||||
const ZoneEvent* GetZoneParent( const ZoneEvent& zone ) const;
|
const ZoneEvent* GetZoneParent( const ZoneEvent& zone ) const;
|
||||||
const GpuEvent* GetZoneParent( const GpuEvent& zone ) const;
|
const GpuEvent* GetZoneParent( const GpuEvent& zone ) const;
|
||||||
|
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
void FindZones();
|
void FindZones();
|
||||||
|
#endif
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool& Visible( const T* ptr )
|
bool& Visible( const T* ptr )
|
||||||
|
@ -120,6 +120,7 @@ Worker::Worker( FileRead& f )
|
|||||||
m_data.sourceLocationPayloadMap.emplace( srcloc, uint32_t( i ) );
|
m_data.sourceLocationPayloadMap.emplace( srcloc, uint32_t( i ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
m_data.sourceLocationZones.reserve( sle + sz );
|
m_data.sourceLocationZones.reserve( sle + sz );
|
||||||
for( uint64_t i=1; i<sle; i++ )
|
for( uint64_t i=1; i<sle; i++ )
|
||||||
{
|
{
|
||||||
@ -129,6 +130,7 @@ Worker::Worker( FileRead& f )
|
|||||||
{
|
{
|
||||||
m_data.sourceLocationZones.emplace( -int32_t( i + 1 ), Vector<ZoneEvent*>() );
|
m_data.sourceLocationZones.emplace( -int32_t( i + 1 ), Vector<ZoneEvent*>() );
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
f.Read( &sz, sizeof( sz ) );
|
f.Read( &sz, sizeof( sz ) );
|
||||||
for( uint64_t i=0; i<sz; i++ )
|
for( uint64_t i=0; i<sz; i++ )
|
||||||
@ -415,12 +417,14 @@ std::vector<int32_t> Worker::GetMatchingSourceLocation( const char* query ) cons
|
|||||||
return match;
|
return match;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
const Vector<ZoneEvent*>& Worker::GetZonesForSourceLocation( int32_t srcloc ) const
|
const Vector<ZoneEvent*>& Worker::GetZonesForSourceLocation( int32_t srcloc ) const
|
||||||
{
|
{
|
||||||
static const Vector<ZoneEvent*> empty;
|
static const Vector<ZoneEvent*> empty;
|
||||||
auto it = m_data.sourceLocationZones.find( srcloc );
|
auto it = m_data.sourceLocationZones.find( srcloc );
|
||||||
return it != m_data.sourceLocationZones.end() ? it->second : empty;
|
return it != m_data.sourceLocationZones.end() ? it->second : empty;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void Worker::Exec()
|
void Worker::Exec()
|
||||||
{
|
{
|
||||||
@ -627,7 +631,9 @@ uint32_t Worker::NewShrinkedSourceLocation( uint64_t srcloc )
|
|||||||
{
|
{
|
||||||
const auto sz = m_data.sourceLocationExpand.size();
|
const auto sz = m_data.sourceLocationExpand.size();
|
||||||
m_data.sourceLocationExpand.push_back( srcloc );
|
m_data.sourceLocationExpand.push_back( srcloc );
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
m_data.sourceLocationZones.emplace( sz, Vector<ZoneEvent*>() );
|
m_data.sourceLocationZones.emplace( sz, Vector<ZoneEvent*>() );
|
||||||
|
#endif
|
||||||
m_sourceLocationShrink.emplace( srcloc, sz );
|
m_sourceLocationShrink.emplace( srcloc, sz );
|
||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
@ -692,9 +698,11 @@ void Worker::NewZone( ZoneEvent* zone, uint64_t thread )
|
|||||||
{
|
{
|
||||||
m_data.zonesCnt++;
|
m_data.zonesCnt++;
|
||||||
|
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
auto it = m_data.sourceLocationZones.find( zone->srcloc );
|
auto it = m_data.sourceLocationZones.find( zone->srcloc );
|
||||||
assert( it != m_data.sourceLocationZones.end() );
|
assert( it != m_data.sourceLocationZones.end() );
|
||||||
it->second.push_back( zone );
|
it->second.push_back( zone );
|
||||||
|
#endif
|
||||||
|
|
||||||
auto td = NoticeThread( thread );
|
auto td = NoticeThread( thread );
|
||||||
td->count++;
|
td->count++;
|
||||||
@ -960,7 +968,9 @@ void Worker::AddSourceLocationPayload( uint64_t ptr, char* data, size_t sz )
|
|||||||
m_data.sourceLocationPayloadMap.emplace( slptr, idx );
|
m_data.sourceLocationPayloadMap.emplace( slptr, idx );
|
||||||
m_pendingSourceLocationPayload.emplace( ptr, -int32_t( idx + 1 ) );
|
m_pendingSourceLocationPayload.emplace( ptr, -int32_t( idx + 1 ) );
|
||||||
m_data.sourceLocationPayload.push_back( slptr );
|
m_data.sourceLocationPayload.push_back( slptr );
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
m_data.sourceLocationZones.emplace( -int32_t( idx + 1 ), Vector<ZoneEvent*>() );
|
m_data.sourceLocationZones.emplace( -int32_t( idx + 1 ), Vector<ZoneEvent*>() );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1613,9 +1623,11 @@ void Worker::ReadTimeline( FileRead& f, Vector<ZoneEvent*>& vec, uint64_t size )
|
|||||||
vec.push_back_no_space_check( zone );
|
vec.push_back_no_space_check( zone );
|
||||||
|
|
||||||
f.Read( zone, sizeof( ZoneEvent ) - sizeof( ZoneEvent::child ) );
|
f.Read( zone, sizeof( ZoneEvent ) - sizeof( ZoneEvent::child ) );
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
auto it = m_data.sourceLocationZones.find( zone->srcloc );
|
auto it = m_data.sourceLocationZones.find( zone->srcloc );
|
||||||
assert( it != m_data.sourceLocationZones.end() );
|
assert( it != m_data.sourceLocationZones.end() );
|
||||||
it->second.push_back( zone );
|
it->second.push_back( zone );
|
||||||
|
#endif
|
||||||
|
|
||||||
ReadTimeline( f, zone->child );
|
ReadTimeline( f, zone->child );
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,9 @@ class Worker
|
|||||||
Vector<SourceLocation*> sourceLocationPayload;
|
Vector<SourceLocation*> sourceLocationPayload;
|
||||||
flat_hash_map<SourceLocation*, uint32_t, SourceLocationHasher, SourceLocationComparator> sourceLocationPayloadMap;
|
flat_hash_map<SourceLocation*, uint32_t, SourceLocationHasher, SourceLocationComparator> sourceLocationPayloadMap;
|
||||||
Vector<uint64_t> sourceLocationExpand;
|
Vector<uint64_t> sourceLocationExpand;
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
flat_hash_map<int32_t, Vector<ZoneEvent*>, nohash<int32_t>> sourceLocationZones;
|
flat_hash_map<int32_t, Vector<ZoneEvent*>, nohash<int32_t>> sourceLocationZones;
|
||||||
|
#endif
|
||||||
|
|
||||||
std::map<uint32_t, LockMap> lockMap;
|
std::map<uint32_t, LockMap> lockMap;
|
||||||
};
|
};
|
||||||
@ -110,7 +112,9 @@ public:
|
|||||||
const SourceLocation& GetSourceLocation( int32_t srcloc ) const;
|
const SourceLocation& GetSourceLocation( int32_t srcloc ) const;
|
||||||
|
|
||||||
std::vector<int32_t> GetMatchingSourceLocation( const char* query ) const;
|
std::vector<int32_t> GetMatchingSourceLocation( const char* query ) const;
|
||||||
|
#ifndef TRACY_NO_STATISTICS
|
||||||
const Vector<ZoneEvent*>& GetZonesForSourceLocation( int32_t srcloc ) const;
|
const Vector<ZoneEvent*>& GetZonesForSourceLocation( int32_t srcloc ) const;
|
||||||
|
#endif
|
||||||
|
|
||||||
NonRecursiveBenaphore& GetMbpsDataLock() { return m_mbpsData.lock; }
|
NonRecursiveBenaphore& GetMbpsDataLock() { return m_mbpsData.lock; }
|
||||||
const std::vector<float>& GetMbpsData() const { return m_mbpsData.mbps; }
|
const std::vector<float>& GetMbpsData() const { return m_mbpsData.mbps; }
|
||||||
|
Loading…
Reference in New Issue
Block a user