MCPcopy Create free account
hub / github.com/FastLED/FastLED / generate_json

Method generate_json

ci/perf/compile_perf.py:497–532  ·  view source on GitHub ↗

Generate JSON output for GitHub Actions artifacts.

(self)

Source from the content-addressed store, hash-verified

495 return "\n".join(lines)
496
497 def generate_json(self) -> dict[str, Any]:
498 """Generate JSON output for GitHub Actions artifacts."""
499 total_time = self.get_total_time()
500 phases = self.get_phase_times()
501 fastled_headers = self.get_fastled_headers()
502 top_ops = self.get_top_operations(20)
503
504 warnings: list[str] = []
505
506 # Check for slow headers
507 for name, time_ms in fastled_headers:
508 if time_ms > 150:
509 warnings.append(f"Header {name} exceeds 150ms ({time_ms:.1f}ms)")
510 elif time_ms > 50:
511 warnings.append(f"Header {name} exceeds 50ms ({time_ms:.1f}ms)")
512
513 # Check template instantiation
514 template_time = phases.get("Templates", 0)
515 if total_time > 0 and template_time / total_time > 0.15:
516 warnings.append(
517 f"Template instantiation time is high ({template_time / total_time * 100:.1f}%)"
518 )
519
520 return {
521 "total_time": total_time,
522 "phases": phases,
523 "top_headers": [
524 {"name": name, "time": time} for name, time in fastled_headers[:20]
525 ],
526 "top_operations": [
527 {"type": op_type, "detail": detail, "time": time}
528 for op_type, detail, time in top_ops
529 ],
530 "warnings": warnings,
531 "timestamp": datetime.now().isoformat(),
532 }
533
534
535def compile_with_trace(

Callers 1

generate_reportMethod · 0.95

Calls 7

get_total_timeMethod · 0.95
get_phase_timesMethod · 0.95
get_fastled_headersMethod · 0.95
get_top_operationsMethod · 0.95
appendMethod · 0.45
getMethod · 0.45
nowMethod · 0.45

Tested by

no test coverage detected