{ "note": "macOS, background/unfocused window -> Godot throttles to ~30fps; frame_ms rows at ~33.3 are the throttle ceiling, not measured cost. build_ms_per_char and the 100-char breakout (52ms) are the reliable signals. Proper frame timing = Phase 2 (focused window / on-device).", "renderer": "Apple M2 (Apple8)", "method": "per-frame set_bone_global_pose (B)", "runs": [ { "build_ms_per_char": 170.682, "build_ms_total": 170.682, "characters": 1, "cpu_process_ms_avg": 34.1602583333333, "cpu_process_ms_p95": 34.405, "fps_avg": 29.345480700072, "frame_ms_avg": 34.0767973856208, "frame_ms_max": 58.8235294117647, "frame_ms_p95": 33.3333333333333, "frames": 240, "method": "per-frame set_bone_global_pose (B)", "renderer": "Apple M2 (Apple8)" }, { "build_ms_per_char": 167.27, "build_ms_total": 1672.7, "characters": 10, "cpu_process_ms_avg": 35.1748875, "cpu_process_ms_p95": 41.667, "fps_avg": 30.0000000000001, "frame_ms_avg": 33.3333333333332, "frame_ms_max": 33.3333333333333, "frame_ms_p95": 33.3333333333333, "frames": 240, "method": "per-frame set_bone_global_pose (B)", "renderer": "Apple M2 (Apple8)" }, { "build_ms_per_char": 164.90146, "build_ms_total": 8245.073, "characters": 50, "cpu_process_ms_avg": 34.5210166666665, "cpu_process_ms_p95": 34.624, "fps_avg": 30.1173930643639, "frame_ms_avg": 33.203405017921, "frame_ms_max": 33.3333333333333, "frame_ms_p95": 33.3333333333333, "frames": 240, "method": "per-frame set_bone_global_pose (B)", "renderer": "Apple M2 (Apple8)" }, { "build_ms_per_char": 164.65813, "build_ms_total": 16465.813, "characters": 100, "cpu_process_ms_avg": 54.0874916666667, "cpu_process_ms_p95": 62.877, "fps_avg": 19.1516169676607, "frame_ms_avg": 52.2149122807017, "frame_ms_max": 52.6315789473684, "frame_ms_p95": 52.6315789473684, "frames": 240, "method": "per-frame set_bone_global_pose (B)", "renderer": "Apple M2 (Apple8)" } ] }