你有没有见过这种场景:场景里也没啥特别复杂的东西GPU 看起来也不满但 CPU 的 Main Thread 长年 20ms+Profiler 一打开:一片“ScriptBehaviourUpdate”,底下密密麻麻全是 MonoBehaviour.Update更离谱的是:很多 Update 里啥也没干,甚至就一行if(!enabled) return;这就是 Unity 圈子里鼎鼎大名的——Update 地狱。一句话总结它的本质:你以为你写的是“每帧干点事”,Unity 看到的是“每帧要点名一万人”。点名本身就要时间,哪怕每个人都回答一句“到”。这篇文章就用大白话但不瞎扯,把 Update 地狱讲透:为什么“空 Update”也要钱?钱花在哪?Unity 引擎底层到底怎么调度 Update?一万个脚本 = 一万次虚函数调用 + 一万次跨域/安全检查 + 一万次查表/遍历?为什么 IL2CPP、Burst、Jobs 能救命,但不一定救你“点名成本”?以及怎么从根上避免:架构、写法、工具链、自动化检测注意:下面讲的是 Unity 常见实现思路与可以从 Profiler 里验证的事实,不会涉及 Unity 私有源码细节,但你会明白“底层到底在忙啥”。