MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / profilerDataDumpRecurseFile

Function profilerDataDumpRecurseFile

Engine/source/platform/profiler.cpp:557–594  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

555}
556
557static void profilerDataDumpRecurseFile(ProfilerData *data, char *buffer, U32 bufferLen, F64 totalTime, FileStream& fws)
558{
559 char pbuffer[256];
560 dSprintf(pbuffer, 255, "%7.3f %7.3f %8d %s%s\n",
561 100 * data->mTotalTime / totalTime,
562 100 * (data->mTotalTime - data->mSubTime) / totalTime,
563 data->mInvokeCount,
564 buffer,
565 data->mRoot ? data->mRoot->mName : "ROOT" );
566 fws.write(dStrlen(pbuffer), pbuffer);
567 data->mTotalTime = 0;
568 data->mSubTime = 0;
569 data->mInvokeCount = 0;
570
571 buffer[bufferLen] = ' ';
572 buffer[bufferLen+1] = ' ';
573 buffer[bufferLen+2] = 0;
574 // sort data's children...
575 ProfilerData *list = NULL;
576 while(data->mFirstChild)
577 {
578 ProfilerData *ins = data->mFirstChild;
579 data->mFirstChild = ins->mNextSibling;
580 ProfilerData **walk = &list;
581 while(*walk && (*walk)->mTotalTime > ins->mTotalTime)
582 walk = &(*walk)->mNextSibling;
583 ins->mNextSibling = *walk;
584 *walk = ins;
585 }
586 data->mFirstChild = list;
587 while(list)
588 {
589 if(list->mInvokeCount)
590 profilerDataDumpRecurseFile(list, buffer, bufferLen + 2, totalTime, fws);
591 list = list->mNextSibling;
592 }
593 buffer[bufferLen] = 0;
594}
595
596void Profiler::dump()
597{

Callers 1

dumpMethod · 0.85

Calls 3

dSprintfFunction · 0.85
dStrlenFunction · 0.50
writeMethod · 0.45

Tested by

no test coverage detected