1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00
This commit is contained in:
Grégoire Roussel 2024-08-09 01:28:10 +02:00
parent 09ac6b0946
commit 2e684723e8

View File

@ -17,12 +17,14 @@
using namespace std::chrono_literals;
bool orderImportTimelineEvents(tracy::Worker::ImportEventTimeline const& a, tracy::Worker::ImportEventTimeline const& b)
bool orderImportTimelineEvents( tracy::Worker::ImportEventTimeline const& a,
tracy::Worker::ImportEventTimeline const& b )
{
return a.timestamp < b.timestamp;
}
bool orderImportMessageEvents(tracy::Worker::ImportEventMessages const& a, tracy::Worker::ImportEventMessages const& b)
bool orderImportMessageEvents( tracy::Worker::ImportEventMessages const& a,
tracy::Worker::ImportEventMessages const& b )
{
return a.timestamp < b.timestamp;
}
@ -101,22 +103,16 @@ struct ExportedWorker
}
// sort timeline and messages events
std::inplace_merge(out.timeline.begin(),
out.timeline.begin() + eventsSortedSoFar,
out.timeline.end(),
std::inplace_merge( out.timeline.begin(), out.timeline.begin() + eventsSortedSoFar, out.timeline.end(),
orderImportTimelineEvents );
eventsSortedSoFar += exported.timeline.size();
std::inplace_merge(out.messages.begin(),
out.messages.begin() + messagesSortedSoFar,
out.messages.end(),
std::inplace_merge( out.messages.begin(), out.messages.begin() + messagesSortedSoFar, out.messages.end(),
orderImportMessageEvents );
messagesSortedSoFar += exported.messages.size();
}
return out;
}
static std::optional<ExportedWorker> fromTracyFile( std::string const& filepath, bool exportPlots )
{
std::unique_ptr<tracy::FileRead> sourceFile{ tracy::FileRead::Open( ( filepath.c_str() ) ) };
@ -127,8 +123,7 @@ struct ExportedWorker
}
std::cout << "reading " << filepath << std::endl;
tracy::Worker worker{*sourceFile,
tracy::EventType::All,
tracy::Worker worker{ *sourceFile, tracy::EventType::All,
true, // otherwise source zones are empty
false };
while( !worker.AreSourceLocationZonesReady() )
@ -229,7 +224,6 @@ struct ExportedWorker
}
};
[[noreturn]] void Usage()
{
printf( "Usage: merge [-fp] -o output.tracy input1.tracy [input2.tracy]...\n\n" );
@ -318,8 +312,8 @@ int main(int argc, char* argv[])
}
std::vector<ExportedWorker const*> exportRefs;
std::transform(
exports.cbegin(), exports.cend(), std::back_inserter(exportRefs), [](ExportedWorker const& ex) { return &ex; });
std::transform( exports.cbegin(), exports.cend(), std::back_inserter( exportRefs ),
[]( ExportedWorker const& ex ) { return &ex; } );
auto mergedImport = ExportedWorker::merge( exportRefs );
@ -331,12 +325,8 @@ int main(int argc, char* argv[])
fprintf( stderr, "Cannot open output file!\n" );
exit( 1 );
}
tracy::Worker outputWorker(mergedImport.name.c_str(),
mergedImport.process.c_str(),
mergedImport.timeline,
mergedImport.messages,
mergedImport.plots,
mergedImport.threadNames);
tracy::Worker outputWorker( mergedImport.name.c_str(), mergedImport.process.c_str(), mergedImport.timeline,
mergedImport.messages, mergedImport.plots, mergedImport.threadNames );
outputWorker.Write( *outputFileWrite, false );
outputFileWrite->Finish();
}