`Process` monitor appears useless

Godot Version

4.6.3

Question

I must be missing something, but I don’t understand the point of the Process monitor under Debugger > Monitors > Time. It appears to just be the overall milliseconds of the frame minus a few other things. I would think it would be the amount of time actually processing any game logic as a result of _process(), perhaps with some other stuff in there like _input(). But it really does just seem to be whatever time remains that wasn’t accounted for elsewhere.

This is easily verifiable by turning off vsync. Once the frames are no longer fixed to that, the time listed on the monitor drastically decreases.


I would hope a monitor like this would tell me how long is being spent actually processing the game tree in a frame, but that just doesn’t seem to be the case. It seems to have idle time attached to it, hiding a number I actually care about.

What’s the point? How do I get the value I care about without drawing 3k frames that will never even be displayed?

Why do you care about engine’s internal processing time? If you need it - you can get it by temporarily disabling vsync, as you already noted.

If you need to time your processing scripts - look for that in the profiler.

Process time is the time spent in _process. The engine calls _process repeatedly whenever it has free time. Therefore the time spent in _process is the time left over from other tasks, by definition.

That’s only a part of it. It’s the time spent in all _process() script functions, plus processing of nodes implemented in native code (e.g. updating animations in animated sprites), plus internal scene tree processing (tweens, timers…), plus waiting for synchronization with the gpu (including vsync if enabled)

Ah! So I just misunderstood the scope of what the monitor meant by process time.

Yes I see the profiler has all the time spent in script methods. I had thought I’d only need to go there when diving into very specific methods, but now I see the big overarching “Script Functions” is right there, close enough what I had thought the monitor was supposed to be reporting.

Appreciated!