godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.07k stars 68 forks source link

Implement Autostart Feature on Profiler / Visual Profiler / Network Profiler #6017

Open stmSi opened 1 year ago

stmSi commented 1 year ago

Describe the project you are working on

Godot Engine

Describe the problem or limitation you are having in your project

During the performance analysis stage, pressing "Start" button on Profiler / Visual Profiler everytime you start game is very repetitive and tedious.

Early detection of performance issues: By starting performance profiling at the beginning of the game, you can catch and fix any performance issues as soon as they arise. This is very crucial to improve game startup time.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add "Auto Start" button beside "Time Inclusive" or "Frame #".

image

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

All "Auto Start" should be "off" default. Everytime "Play the Project" or "Run Current Scene" or "Run Specific Scene" buttons are pressed (after confirmation dialogs), each Profiler should start respectively if "Auto Start" is on.

If this enhancement will not be used often, can it be worked around with a few lines of script?

I am sure this enhancement will use often. Script cannot access Profilers Logic.

Is there a reason why this should be core and not an add-on in the asset library?

This is about improving the Profiler usability out of the box.

Calinou commented 1 year ago

This sounds good, but should this autostart button persist across editor restarts? If so, should its value be stored in the editor settings (making it global among all projects) or in project metadata (making it scoped to a single project)?

stmSi commented 1 year ago

I think project-wide setting would be more appropriate than editor settings.

and-rad commented 1 year ago

I'm a little late to the party but I think project settings are the wrong place for this. My main reason is that this will get commited to version control, at which point you either have constant diff noise or you force everyone on the project to be extra careful to not commit these settings.

Conceptually, I think starting the profiler automatically is not something that belongs in the project settings. It's an action that is too localized, too specific to a particular task at a particular time, for this to be a good place.

moonraymurray commented 1 year ago

I would love for this feature to be added, in testing phases I have probably wasted an hour or so just in having to click start every single time, and forgetting some time then missing the part I was monitoring and having to wait again, all this time adds up to hours wasted, one single button or setting could fix this.

Calinou commented 1 year ago

@moonraymurray Please don't bump issues without contributing significant new information. Use the :+1: reaction button on the first post instead.

DaGamingWolf commented 1 year ago

i want to add that this feature is important to a workflow where you work on a function or script in a separate project so you can run and test it in isolation without having to worry about starting up the actual game. with this workflow, lacking an auto start feature forces you to program a way to trigger your code on command after starting the profiler, which slows things down and requires more prep time.

Goutte commented 3 months ago

This sounds good, but should this autostart button persist across editor restarts?

Nah. In the user story of profiling, we want to do our thing locally and avoid bothering collaborators with it, and that means not having to (remember to) disable the option.

I'd be fine with two more buttons in the profiler: Start Project|Scene With Profiler

Edit: I did not think about multiple profilers. Buttons might not cover the case where multiple profilers are needed.