2020年7月13日 星期一

Unity Debug.Log 的代價

Debug.Log() 在手機上的代價不低 (此例為 Android Zenfone 5Q,中階手機),在效能吃緊的關頭常常會漏考慮了它們存在的必要性。以下附圖是在使用 Unity 2018.4.18 製作的專案中,為了查明碰撞發生時僅在某些中低階手機上發生的莫名 Lag,而使用 Profiler 觀測專案在 Asus Zenfone 5Q 上運行的結果:



可以發現 Lag 的起因在於偵測到碰撞的當下送出了約 30 條 Logs,總費時竟高達 200ms。移除這些 Log 後,Lag 現象隨即消失。還給 Unity Physics 一個清白。