int main(int argc, char* argv[]) { FILE *statsFile = fopen("perfstats.raw", "w"); TfStopwatch watch; int recrusionSizes[] = {1, 2, 10};//, 100}; int testSizes[] = {1000000, 10000000, 100000000}; for (int R : recrusionSizes) { std::cout << "Recursion depth: " << R << std::endl; for (int size : testSizes) { watch.Reset(); watch.Start(); auto collection = CreateTrace(size, R); watch.Stop(); std::cout << "Create Trace N: " << size << " time: " << watch.GetSeconds() << " scopes/msec: " << float(size)/watch.GetMilliseconds() << std::endl; auto reporter = TraceReporter::New( "Test", TraceReporterDataSourceCollection::New(collection)); watch.Reset(); watch.Start(); reporter->UpdateAggregateTree(); watch.Stop(); WriteStats( statsFile, TfStringPrintf("aggregate tree R %d N %d", R, size), watch); std::cout << "Aggregate Tree N: " << size << " time: " << watch.GetSeconds() << " scopes/msec: " << float(size)/watch.GetMilliseconds() << std::endl; watch.Reset(); watch.Start(); auto tree = TraceEventTree::New(*collection); watch.Stop(); WriteStats( statsFile, TfStringPrintf("event tree R %d N %d", R, size), watch); std::cout << "Event Tree N: " << size << " time: " << watch.GetSeconds() << " scopes/msec: " << float(size)/watch.GetMilliseconds() << std::endl; } } fclose(statsFile); return 0; }