Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Utilizzo dei profiler di C++

To optimize Godot's performance, you need to know what to optimize first. To this end, profilers are useful tools.

Nota

There is a built-in GDScript profiler in the editor, but using a C++ profiler may be useful in cases where the GDScript profiler is not accurate enough or is missing information due to bugs in the profiler.

There are two main types of profilers: sampling profilers and tracing profilers.

Sampling profilers periodically interrupt the running program and take a "sample", which records which functions are running. Using this information, the profiler estimates which functions the program spent the most time in.

Tracing profilers work by recording application-specific events (such as the start and end of a single frame), producing a log called a "trace". The profiler can use the trace to produce a graph showing an accurate high-level timeline of what happened. However, any code that is not explicitly instrumented will not appear in a tracing profiler's timeline!

Godot supports both sampling profilers and tracing profilers, and already includes the logging code for common Godot events for use with a tracing profiler!

Different problems may be easier to debug with one kind of profiler over the other, but it's difficult to provide a set of rules for which to use. Give both a try, and see what you can learn from them!

Sampling profilers

We recommend the following sampling profilers:

Questi profiler potrebbero non essere le opzioni più potenti o flessibili, ma il loro funzionamento autonomo e l'insieme limitato di funzionalità tendono a renderli più facili da usare.

Configurazione di Godot

Per ottenere informazioni di profilazione utili, è assolutamente necessario utilizzare una build di Godot che includa i simboli di debug. I binari ufficiali non includono i simboli di debug, poiché questi aumenterebbero considerevolmente le dimensioni del download.

Per ottenere dati di profilazione che corrispondano al meglio all'ambiente di produzione (ma con simboli di debug), si dovrebbero compilare i binari con le opzioni di SCons production=yes debug_symbols=yes.

È possibile eseguire un profiler su build meno ottimizzate (ad esempio target=template_debug senza LTO), ma i risultati saranno naturalmente meno rappresentativi delle condizioni reali.

Avvertimento

Non rimuovere i simboli di debug dai file binari tramite il comando strip dopo la compilazione. Altrimenti, non si otterranno più informazioni di profilazione utili durante l'esecuzione di un profiler.

Benchmarking startup/shutdown times

If you're looking into optimizing Godot's startup/shutdown performance, you can tell the profiler to use the --quit command line option on the Godot binary. This will exit Godot just after it's done starting. The --quit option works with --editor, --project-manager, and --path <path to project directory> (which runs a project directly).

Vedi anche

Consultare Tutorial sulla riga di comando per ulteriori argomenti di riga di comando supportati da Godot.

Tracing profilers

Godot currently supports three tracing profilers:

Nota

Perfetto is the default tracing system for Android, so pre-built export templates with Perfetto built-in and enabled are provided from the GitHub Releases page.

In order to use either of them, you'll need to build the engine from source. If you've never done this before, please read these docs for the platform you want to profile on. You'll need to perform the same steps here, but with some additional arguments for scons.