void dumpData(int rootCallCount, int indent=0) { if(indent == 0) { rootCallCount = (int)floor(rootCallCount/(double)numParallelCalls+0.5); calculateProfileData(rootCallCount); } String indentStr; for(int i=0; i<indent; i++) indentStr << TEXT("| "); CTSTR lpIndent = indent == 0 ? TEXT("") : indentStr.Array(); int perFrameCalls = (int)floor(numCalls/(double)rootCallCount+0.5); float fTimeTaken = (float)MicroToMS(avgTimeElapsed); float cpuTime = (float)MicroToMS(avgCpuTime); float totalCpuTime = (float)cpuTimeElapsed*0.001f; if(avgPercentage >= minPercentage && fTimeTaken >= minTime) { if(Children.Num()) Log(TEXT("%s%s - [%.3g%%] [avg time: %g ms] [children: %.3g%%] [unaccounted: %.3g%%]"), lpIndent, lpName, avgPercentage, fTimeTaken, childPercentage, unaccountedPercentage); else Log(TEXT("%s%s - [%.3g%%] [avg time: %g ms]"), lpIndent, lpName, avgPercentage, fTimeTaken); } for(unsigned int i=0; i<Children.Num(); i++) Children[i].dumpData(rootCallCount, indent+1); }
void dumpData(int rootCallCount, int indent=0) { if(indent == 0) calculateProfileData(rootCallCount); String indentStr; for(int i=0; i<indent; i++) indentStr << TEXT("| "); CTSTR lpIndent = indent == 0 ? TEXT("") : indentStr.Array(); int perFrameCalls = numCalls/rootCallCount; float fTimeTaken = (float)MicroToMS(avgTimeElapsed); if(avgPercentage >= minPercentage && fTimeTaken >= minTime) { if(Children.Num()) Log(TEXT("%s%s - [%.3g%%] [avg time: %g ms] [avg calls per frame: %d] [children: %.3g%%] [unaccounted: %.3g%%]"), lpIndent, lpName, avgPercentage, fTimeTaken, perFrameCalls, childPercentage, unaccountedPercentage); else Log(TEXT("%s%s - [%.3g%%] [avg time: %g ms] [avg calls per frame: %d]"), lpIndent, lpName, avgPercentage, fTimeTaken, perFrameCalls); } for(unsigned int i=0; i<Children.Num(); i++) Children[i]->dumpData(rootCallCount, indent+1); }