- Home /
Question on Strange Debug.Log() Behavior
Hello everyone, I'm noticing a odd behavior when I am running my game in the editor while a lot of debugging statements are being logged.
In Detail: I'm testing a projectile script that checks if the shell is going to hit anything each frame. Normally (with light or no debugging statements) everything works fine even at ridiculously fast velocities.
However, whenever I've got a significant amount of debug statements active (doing things like debugging shell positions, velocity, info relating to prefab usage when the shell is fired, etc), the game starts missing calculations (shells start going through objects).
It seems to happen while the game "hiccups" from the barrage of debugs, and seems to treat the time the game was 'frozen' as time the shell was moving, then updates the shell's position as if it had been moving, but makes no calculations during that time.
I'm curious about why logging debug statements can apparently make a script that makes checks every frame start missing calculations. The hiccups and slowdowns are all fine, but what about that would make a script not run correctly?
Any ideas are appreciated, thank you for reading.
Without any code it's hard to tell, but logging anything to the console is certainly slow, which will increase Time.deltaTime and decrease the rate of Update() calls. FixedUpdate() (which is where Physics calculations are done) however should remain at a constant rate, but is obviously out-of-synch with Update(). You may be getting 0, 1, or more FixedUpdate() calls inbetween each Update().
Fair enough points all around, didn't know that "freezes" still allowed fixed update to run, I'm sure the issue lies within that sync issue like you said.
Debug.Log is really really slow. If you've got more than a single one in an Update loop, you will definitely see a performance impact.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
byte[] to Texture kills performance 3 Answers
In depth profiling? 1 Answer
Reference Variables and Drag-And-Drop 0 Answers