MCPcopy Create free account
hub / github.com/AMReX-Codes/amrex / WriteTextTrace

Method WriteTextTrace

Src/Extern/ProfParser/AMReX_RegionsProfStats.cpp:1320–1403  ·  view source on GitHub ↗

----------------------------------------------------------------------

Source from the content-addressed store, hash-verified

1318
1319// ----------------------------------------------------------------------
1320void RegionsProfStats::WriteTextTrace(std::ostream &ios, bool simpleCombine,
1321 int whichProc, std::string delimString)
1322{
1323 Vector<std::string> fNumberNames(mFNameNumbersPerProc[whichProc].size());
1324 for(std::map<std::string, int>::const_iterator it = mFNameNumbersPerProc[whichProc].begin();
1325 it != mFNameNumbersPerProc[whichProc].end(); ++it)
1326 {
1327 fNumberNames[it->second] = it->first;
1328 }
1329
1330 ios << "Text Trace (function number :: function name :: inclusive time :: exclusive time :: ncalls :: callstackdepth :: call time)\n\n";
1331 ios << std::setprecision(16);
1332
1333 if(simpleCombine) {
1334 BLProfiler::CallStats *combCallStats = 0;
1335
1336 for(int idb(0); idb < dataBlocks.size(); ++idb) {
1337 DataBlock &dBlock = dataBlocks[idb];
1338 if(dBlock.proc == whichProc) {
1339 ReadBlock(dBlock, false, true); // read only the traces
1340 Vector<BLProfiler::CallStats> &vCallTrace = dBlock.vCallStats;
1341
1342 for(int i(0); i < vCallTrace.size(); ++i) {
1343 BLProfiler::CallStats &cs = vCallTrace[i];
1344 if(cs.callStackDepth < 0 || cs.csFNameNumber < 0) { // ---- the unused cs
1345 continue;
1346 }
1347
1348 if(i < vCallTrace.size() - 2) {
1349 BLProfiler::CallStats &csNext = vCallTrace[i + 1];
1350 if(csNext.callStackDepth == cs.callStackDepth &&
1351 cs.csFNameNumber == csNext.csFNameNumber)
1352 {
1353 if(combCallStats == 0) {
1354 combCallStats = new BLProfiler::CallStats(cs);
1355 } else {
1356 combCallStats->nCSCalls += cs.nCSCalls;
1357 combCallStats->totalTime += cs.totalTime;
1358 combCallStats->stackTime += cs.stackTime;
1359 }
1360 } else {
1361 if(combCallStats == 0) {
1362 PRINTCSTT(ios, cs, delimString);
1363 } else {
1364 combCallStats->nCSCalls += cs.nCSCalls;
1365 combCallStats->totalTime += cs.totalTime;
1366 combCallStats->stackTime += cs.stackTime;
1367 PRINTCSTT(ios, (*combCallStats), delimString);
1368 delete combCallStats;
1369 combCallStats = 0;
1370 }
1371 }
1372 } else {
1373 if(combCallStats != 0) {
1374 PRINTCSTT(ios, (*combCallStats), delimString);
1375 delete combCallStats;
1376 combCallStats = 0;
1377 }

Callers 1

ProfParserBatchFunctionsFunction · 0.45

Calls 3

sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected