87 auto frameEnd = std::chrono::steady_clock::now();
88 float totalMs = std::chrono::duration<float, std::milli>(
103 return a.executionTimeMs > b.executionTimeMs;
119 const std::string& nodeName)
132 m.nodeName = nodeName;
147 auto now = std::chrono::steady_clock::now();
148 float elapsedMs = std::chrono::duration<float, std::milli>(
205 std::vector<NodeExecutionMetrics> result;
207 result.push_back(
kv.second);
209 std::sort(result.begin(), result.end(),
211 return a.avgTimeMs > b.avgTimeMs;
230 std::ofstream
ofs(path);
233 std::cerr <<
"[PerformanceProfiler] Failed to open file: " << path << std::endl;
238 ofs <<
"FrameNumber,TotalFrameTimeMs,NodeID,NodeName,ExecTimeMs,"
239 "AvgTimeMs,MaxTimeMs,ExecCount\n";
251 <<
m.executionTimeMs <<
","
252 <<
m.avgTimeMs <<
","
253 <<
m.maxTimeMs <<
","
254 <<
m.executionCount <<
"\n";
ComponentTypeID GetComponentTypeID_Static()
< Provides AssetID and INVALID_ASSET_ID
Snapshot of all node metrics for a single frame.
std::vector< NodeExecutionMetrics > nodeMetrics
Accumulated per-node execution statistics.