Quick answer: Unity UI Toolkit AddToClassList / RemoveFromClassList in update loop causing per-frame relayout? Style class changes invalidate layout - batch into discrete events.
Health bar updates a 'low-health' class per frame; profiler shows 8ms in layout.
Toggle on threshold
bool low = hp < 30;
if (low != wasLow) {{ ToggleClass(low); wasLow = low; }}One toggle per state change; not per frame.
Or use schedule
Toggle in scheduled event; not Update. Batched.
Audit per-frame class changes
Each ToggleClass call's frequency. Identify hotspots.
“Class changes are layout-relevant. Per-frame changes are layout-thrashing.”
If your UI Toolkit is slow, the per-frame class toggle is a common culprit. Audit; gate.