From ed378b8fa2c4697dc66baa00943c761653d09518 Mon Sep 17 00:00:00 2001 From: David Snopek Date: Tue, 18 Nov 2025 13:26:27 -0600 Subject: [PATCH] Add documentation on how to use Tracy and Perfetto --- .../img/cpp_profiler_hotspot_flame_graph.png | Bin .../img/cpp_profiler_hotspot_record.png | Bin .../img/cpp_profiler_hotspot_view_results.png | Bin .../img/cpp_profiler_hotspot_welcome.png | Bin .../profiling/img/cpp_profiler_perfetto.webp | Bin 0 -> 74978 bytes .../img/cpp_profiler_time_profiler.png | Bin .../img/cpp_profiler_time_profiler_record.png | Bin .../img/cpp_profiler_time_profiler_result.png | Bin .../img/cpp_profiler_tracy_recording.webp | Bin 0 -> 71704 bytes .../img/cpp_profiler_tracy_start.webp | Bin 0 -> 26240 bytes ...p_profiler_verysleepy_results_filtered.png | Bin ...cpp_profiler_verysleepy_select_process.png | Bin .../img/cpp_profiler_xcode_menu.png | Bin .../profiling/sampling_profilers.rst | 152 ++++++++++++ .../debugging/profiling/tracing_profilers.rst | 227 ++++++++++++++++++ .../debugging/using_cpp_profilers.rst | 160 ++---------- 16 files changed, 398 insertions(+), 141 deletions(-) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_hotspot_flame_graph.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_hotspot_record.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_hotspot_view_results.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_hotspot_welcome.png (100%) create mode 100644 engine_details/development/debugging/profiling/img/cpp_profiler_perfetto.webp rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_time_profiler.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_time_profiler_record.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_time_profiler_result.png (100%) create mode 100644 engine_details/development/debugging/profiling/img/cpp_profiler_tracy_recording.webp create mode 100644 engine_details/development/debugging/profiling/img/cpp_profiler_tracy_start.webp rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_verysleepy_results_filtered.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_verysleepy_select_process.png (100%) rename engine_details/development/debugging/{ => profiling}/img/cpp_profiler_xcode_menu.png (100%) create mode 100644 engine_details/development/debugging/profiling/sampling_profilers.rst create mode 100644 engine_details/development/debugging/profiling/tracing_profilers.rst diff --git a/engine_details/development/debugging/img/cpp_profiler_hotspot_flame_graph.png b/engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_flame_graph.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_hotspot_flame_graph.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_flame_graph.png diff --git a/engine_details/development/debugging/img/cpp_profiler_hotspot_record.png b/engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_record.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_hotspot_record.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_record.png diff --git a/engine_details/development/debugging/img/cpp_profiler_hotspot_view_results.png b/engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_view_results.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_hotspot_view_results.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_view_results.png diff --git a/engine_details/development/debugging/img/cpp_profiler_hotspot_welcome.png b/engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_welcome.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_hotspot_welcome.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_hotspot_welcome.png diff --git a/engine_details/development/debugging/profiling/img/cpp_profiler_perfetto.webp b/engine_details/development/debugging/profiling/img/cpp_profiler_perfetto.webp new file mode 100644 index 0000000000000000000000000000000000000000..cf653cf7cfd003745fb411b0d8e859aed1bbce1d GIT binary patch literal 74978 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 literal 0 HcmV?d00001 diff --git a/engine_details/development/debugging/img/cpp_profiler_time_profiler.png b/engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_time_profiler.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler.png diff --git a/engine_details/development/debugging/img/cpp_profiler_time_profiler_record.png b/engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler_record.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_time_profiler_record.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler_record.png diff --git a/engine_details/development/debugging/img/cpp_profiler_time_profiler_result.png b/engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler_result.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_time_profiler_result.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_time_profiler_result.png diff --git a/engine_details/development/debugging/profiling/img/cpp_profiler_tracy_recording.webp b/engine_details/development/debugging/profiling/img/cpp_profiler_tracy_recording.webp new file mode 100644 index 0000000000000000000000000000000000000000..39d093f505b796158a279d4e8c9938cf9255f9de GIT binary patch literal 71704 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 DSJ+8` literal 0 HcmV?d00001 diff --git a/engine_details/development/debugging/profiling/img/cpp_profiler_tracy_start.webp b/engine_details/development/debugging/profiling/img/cpp_profiler_tracy_start.webp new file mode 100644 index 0000000000000000000000000000000000000000..78ce73c1dbd5d4ae7f43c3e0a43f24201ee6995c GIT binary patch literal 26240 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 literal 0 HcmV?d00001 diff --git a/engine_details/development/debugging/img/cpp_profiler_verysleepy_results_filtered.png b/engine_details/development/debugging/profiling/img/cpp_profiler_verysleepy_results_filtered.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_verysleepy_results_filtered.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_verysleepy_results_filtered.png diff --git a/engine_details/development/debugging/img/cpp_profiler_verysleepy_select_process.png b/engine_details/development/debugging/profiling/img/cpp_profiler_verysleepy_select_process.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_verysleepy_select_process.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_verysleepy_select_process.png diff --git a/engine_details/development/debugging/img/cpp_profiler_xcode_menu.png b/engine_details/development/debugging/profiling/img/cpp_profiler_xcode_menu.png similarity index 100% rename from engine_details/development/debugging/img/cpp_profiler_xcode_menu.png rename to engine_details/development/debugging/profiling/img/cpp_profiler_xcode_menu.png diff --git a/engine_details/development/debugging/profiling/sampling_profilers.rst b/engine_details/development/debugging/profiling/sampling_profilers.rst new file mode 100644 index 00000000000..d1c4d88e002 --- /dev/null +++ b/engine_details/development/debugging/profiling/sampling_profilers.rst @@ -0,0 +1,152 @@ +.. _doc_sampling_profilers: + +Sampling profilers +================== + +Recommended profilers +--------------------- + +- `VerySleepy `__ (Windows only) +- `HotSpot `__ (Linux only) +- `Xcode Instruments `__ (macOS only) + +These profilers may not be the most powerful or flexible options, but their +standalone operation and limited feature set tends to make them easier to use. + +Setting up Godot +---------------- + +To get useful profiling information, it is **absolutely required** to use a Godot +build that includes debugging symbols. Official binaries do not include debugging +symbols, since these would make the download size significantly larger. + +To get profiling data that best matches the production environment (but with debugging symbols), +you should compile binaries with the ``production=yes debug_symbols=yes`` SCons options. + +It is possible to run a profiler on less optimized builds (e.g. ``target=template_debug`` without LTO), +but results will naturally be less representative of real world conditions. + +.. warning:: + + Do *not* strip debugging symbols on the binaries using the ``strip`` command + after compiling the binaries. Otherwise, you will no longer get useful + profiling information when running a 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 `` (which runs a project directly). + +.. seealso:: + + See :ref:`doc_command_line_tutorial` for more command line arguments + supported by Godot. + +Profiler-specific instructions +------------------------------ + +VerySleepy +~~~~~~~~~~ + +- Start the Godot editor or your project first. + If you start the Project Manager, make sure to edit or run a project first. + Otherwise, the profiler will not track the child process since the Project Manager + will spawn a child process for every project edited or run. +- Open VerySleepy and select the Godot executable in the list of processes on the left: + +.. image:: img/cpp_profiler_verysleepy_select_process.png + +- Click the **Profile All** button on the right to start profiling. +- Perform the actions you wish to profile in the editor or project. When you're done, click **Stop** (*not* Abort). +- Wait for the results window to appear. +- Once the results window appears, filter the view to remove external modules (such as the graphics driver). + You can filter by module by finding a line whose **Module** matches the Godot + executable name, right-clicking that line then choosing + **Filter Module to ** in the dropdown that appears. +- Your results window should now look something like this: + +.. image:: img/cpp_profiler_verysleepy_results_filtered.png + +HotSpot +~~~~~~~ + +- Open HotSpot. Click **Record Data**: + +.. image:: img/cpp_profiler_hotspot_welcome.png + +- In the next window, specify the path to the Godot binary that includes debug symbols. +- Specify command line arguments to run a specific project, with or without the editor. +- The path to the working directory can be anything if an absolute path is used + for the ``--path`` command line argument. Otherwise, it must be set so that + the relative path to the project is valid. +- Make sure **Elevate Privileges** is checked if you have administrative privileges. + While not essential for profiling Godot, this will ensure all events can be captured. + Otherwise, some events may be missing from the capture. + Your settings should now look something like this: + +.. image:: img/cpp_profiler_hotspot_record.png + +- Click **Start Recording** and perform the actions you wish to profile in the editor/project. +- Quit the editor/project normally or use the **Stop Profiling** button in HotSpot + to stop profiling early. Stopping profiling early can result in cleaner profiles + if you're not interested in the engine's shutdown procedure. +- Click **View Results** and wait for the profiling visualization to be generated: + +.. image:: img/cpp_profiler_hotspot_view_results.png + +- Use the tabs at the top to navigate between the different views. These views + show the same data, but in different ways. The **Flame Graph** tab is a good + way to see which functions take up the most time at a glance. These functions + are therefore the most important ones to optimize, since optimizing them will + improve performance the most. +- At the bottom of all tabs except **Summary**, you will also see a list of CPU threads + started by the engine along with the CPU utilization for each thread. + This lets you see threads that can be a bottleneck at a given point in time. + +.. image:: img/cpp_profiler_hotspot_flame_graph.png + +.. note:: + + If you don't want the startup procedure to be included in the profile, you + can also attach HotSpot to a running process by clicking **Record Data** + then setting the **Launch Application** dropdown option to **Attach To + Process(es)**. + + This process attachment-based workflow is similar to the one used by VerySleepy. + +Xcode Instruments +~~~~~~~~~~~~~~~~~ + +- Open Xcode. Select **Open Developer Tool** - **Instruments** from the **Xcode** app menu: +- Double-click on **Time Profiler** in the **Instruments** window: + +.. image:: img/cpp_profiler_xcode_menu.png + +- In the Time Profiler window, click on the **Target** menu, select **Choose target...** + and specify the path to the Godot binary, command line arguments, and environment variables + in the next window. + +.. image:: img/cpp_profiler_time_profiler.png + +- You can also attach the Time Profiler to a running process by selecting it from the **Target** + menu. + +- Click the **Start an immediate mode recording** button to start profiling. + +.. image:: img/cpp_profiler_time_profiler_record.png + +- Perform the actions you wish to profile in the editor or project. When you're done, + click the **Stop** button. + +- Wait for the results to appear. +- At the bottom of the window you will see a call tree for all CPU threads started, and + the **Heaviest Stack Trace** overview. +- Select **Hide system libraries** in the **Call Tree** menu (at the bottom of the window) to + remove external modules. +- You can use the timeline at the top of the window to display details for the specific time period. + +.. image:: img/cpp_profiler_time_profiler_result.png diff --git a/engine_details/development/debugging/profiling/tracing_profilers.rst b/engine_details/development/debugging/profiling/tracing_profilers.rst new file mode 100644 index 00000000000..6785c9e18df --- /dev/null +++ b/engine_details/development/debugging/profiling/tracing_profilers.rst @@ -0,0 +1,227 @@ +.. _doc_tracing_profilers: + +Tracing Profilers +================= + +Godot currently supports two tracing profilers: +`Tracy `__ and `Perfetto `__. + +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 +:ref:`these docs ` for the platform you want to profile on. +You'll need to perform the same steps here, but with the addition of a single +extra argument for ``scons``. + +.. _doc_tracy_profiler: + +Tracy for Windows, Linux, and macOS +----------------------------------- + +Tracy is an Open Source profiler that runs on a wide variety of platforms, +including Windows, Linux, and macOS. While it is primarily a tracing profiler, +it can also periodically sample data like a +:ref:`sampling profiler `, giving some of the benefits +of both approaches. + +Build Godot with Tracy support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, clone the latest version of the Tracy source code ("0.13.0" at the +time of writing) using Git: + +.. code-block:: shell + + git clone -b v0.13.0 --single-branch https://github.com/wolfpld/tracy.git + +This will create a ``tracy`` directory - you can place this anywhere. + +Next, build the release templates for your platform using ``scons``, but adding +the ``profiler_path=path/to/tracy`` argument with the real path to the ``tracy`` +directory, as well as ``debug_symbols=yes`` to allow Tracy's sampling features +to work. + +.. note:: + + You don't have to build release templates, you could also build debug + templates, or even the editor. However, it's generally recommended to + profile release templates, because that is the version your players will + use, and it will perform differently than other types of builds. + +For example, to build release templates for Windows: + +.. code-block:: shell + + scons platform=windows target=template_release debug_symbols=yes profiler_path=path/to/tracy + +Get the Tracy "server" +~~~~~~~~~~~~~~~~~~~~~~ + +In Tracy terminology, the application you are profiling is the "client", and +the one receiving the data is the "server". + +If you are on Windows, you can download a pre-built ``tracy-profiler.exe`` +from the Tracy `releases page `_. + +However, if you're on Linux or macOS, you'll either need to find a pre-built +binary from a package manager (like ``brew`` or ``nix``), or build it from +source yourself. + +.. note:: + + If you do use a pre-built binary, be sure to use the same version that + you used when building Godot. + +Build the Tracy server from source +++++++++++++++++++++++++++++++++++ + +The full details can be found in the +`Tracy manual `_, +but here is the TL;DR: + +.. code-block:: shell + + # On Linux, Tracy uses Wayland by default, so if you use X11 add -DLEGACY=1 + cmake -B profiler/build -S profiler -DCMAKE_BUILD_TYPE=Release + cmake --build profiler/build --config Release --parallel + +Record a trace +~~~~~~~~~~~~~~ + +Launch the Tracy server - you'll see something like this: + +.. image:: img/cpp_profiler_tracy_start.webp + +If you press "Connect" now, you can profile the launch of Godot. However, +if you want to profile something specific (for example, a part of your game +that is exhibiting performance issues), wait before pressing the button. + +Now, export your game using the release templates you built above, and run it. +As soon as both are running, and you have pressed the "Connect" button in +Tracy, you'll see data coming in: + +.. image:: img/cpp_profiler_tracy_recording.webp + +When you think you've gathered enough data, press the "Stop" button. If you +clicked somewhere and the box with the "Stop" button disappeared, you can +click the top-left most icon to bring it back. + +Examining the trace +~~~~~~~~~~~~~~~~~~~ + +Here are some of the basic controls: + +- Zoom in/out with the mouse wheel +- Right click and drag to move forward/backward on the timeline +- In the top bar, click the left and right arrow buttons by "Frames" to move a single frame on the timeline + +To learn more, see the +`Tracy manual `_. + +Perfetto for Android +-------------------- + +Perfetto is the default tracing system for Android. In fact, its system tracing +service has been built into the platform since Android 9. + +Build Godot with Perfetto support +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +First, clone the latest version of the Perfetto source code ("53.0" at the +time of writing) using Git: + +.. code-block:: shell + + git clone -b v53.0 --single-branch https://github.com/google/perfetto.git + +This will create a ``perfetto`` directory - you can place this anywhere. + +Next, build the Android debug or release templates for your architecture using +``scons`` (per :ref:`Compiling for Android `), but +adding the ``profiler_path=path/to/perfetto`` argument with the real path to +the ``perfetto`` directory. + +.. note:: + + It's generally recommended to profile release templates, because that is + the version your players will use, and it will perform differently than + other types of builds. However, in the case of Android, it can sometimes + be useful to use debug templates, because Godot can only do remote + debugging of games exported from debug templates. + +For example, to build the release templates for arm64: + +.. code-block:: shell + + scons platform=android target=template_release arch=arm64 generate_android_binaries=yes profiler_path=path/to/perfetto + +Configuration +~~~~~~~~~~~~~ + +Perfetto requires a configuration file to tell it which events to track. + +Create a file called ``godot.config`` inside of the ``perfetto`` directory +with this content: + +.. code-block:: text + + # Trace for 10 seconds. + duration_ms: 10000 + + buffers { + size_kb: 32768 + fill_policy: RING_BUFFER + } + + # Write to file once every second to prevent overflowing the buffer. + write_into_file: true + file_write_period_ms: 1000 + + # Track events in the "godot" category. + data_sources { + config { + name: "track_event" + track_event_config { + enabled_categories: "godot" + } + } + } + +Record a trace +~~~~~~~~~~~~~~ + +Finally, launch your game on an Android device using the export templates you +built earlier. + +When you're ready to record a trace (for example, when you've hit the part of +your game that is exhibiting performance issues), you can use this script that +comes with the Perfetto source code: + +.. code-block:: shell + + cd perfetto + ./tools/record_android_trace -c godot.config + +This will record for 10 seconds (per the configuration), or until you press +:kbd:`Ctrl + C`. + +Examining the trace +~~~~~~~~~~~~~~~~~~~ + +As soon as that script exits, it will launch the Perfetto UI in a web browser. + +To see the Godot events, expand the row for your application by clicking on its +Android "Unique Name" (Perfetto will also include some events from system +services in the trace). + +.. image:: img/cpp_profiler_perfetto.webp + +Then you can use the ``WASD`` keys to navigate the graph: + +- Press :kbd:`A` or :kbd:`D` to navigate forward or backward along the timeline +- Press :kbd:`W` or :kbd:`S` to zoom in or out + +You'll probably need to zoom a bit before you're able to see the individual +events from Godot. + +To learn more, see the +`Perfetto UI documentation `_. diff --git a/engine_details/development/debugging/using_cpp_profilers.rst b/engine_details/development/debugging/using_cpp_profilers.rst index df51becbbe1..6c87784fd19 100644 --- a/engine_details/development/debugging/using_cpp_profilers.rst +++ b/engine_details/development/debugging/using_cpp_profilers.rst @@ -12,150 +12,28 @@ To this end, profilers are useful tools. but using 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. -Recommended profilers ---------------------- +There are two main types of profilers: sampling profilers and tracing profilers. -- `VerySleepy `__ (Windows only) -- `HotSpot `__ (Linux only) -- `Xcode Instruments `__ (macOS only) +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. -These profilers may not be the most powerful or flexible options, but their -standalone operation and limited feature set tends to make them easier to use. +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! -Setting up Godot ----------------- +Godot supports both sampling profilers and tracing profilers, and already +includes the logging code for common Godot events for use with a tracing profiler! -To get useful profiling information, it is **absolutely required** to use a Godot -build that includes debugging symbols. Official binaries do not include debugging -symbols, since these would make the download size significantly larger. +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! -To get profiling data that best matches the production environment (but with debugging symbols), -you should compile binaries with the ``production=yes debug_symbols=yes`` SCons options. +.. toctree:: + :maxdepth: 1 + :name: toc-devel-using-cpp-profilers -It is possible to run a profiler on less optimized builds (e.g. ``target=template_debug`` without LTO), -but results will naturally be less representative of real world conditions. - -.. warning:: - - Do *not* strip debugging symbols on the binaries using the ``strip`` command - after compiling the binaries. Otherwise, you will no longer get useful - profiling information when running a 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 finished starting. -The ``--quit`` option works with ``--editor``, ``--project-manager`` or -``--path `` (which runs a project directly). - -.. seealso:: - - See :ref:`doc_command_line_tutorial` for more command line arguments - supported by Godot. - -Profiler-specific instructions ------------------------------- - -VerySleepy -~~~~~~~~~~ - -- Start the Godot editor or your project first. - If you start the Project Manager, make sure to edit or run a project first. - Otherwise, the profiler will not track the child process since the Project Manager - will spawn a child process for every project edited or run. -- Open VerySleepy and select the Godot executable in the list of processes on the left: - -.. image:: img/cpp_profiler_verysleepy_select_process.png - -- Click the **Profile All** button on the right to start profiling. -- Perform the actions you wish to profile in the editor or project. When you're done, click **Stop** (*not* Abort). -- Wait for the results window to appear. -- Once the results window appears, filter the view to remove external modules (such as the graphics driver). - You can filter by module by finding a line whose **Module** matches the Godot - executable name, right-clicking that line then choosing - **Filter Module to ** in the dropdown that appears. -- Your results window should now look something like this: - -.. image:: img/cpp_profiler_verysleepy_results_filtered.png - -HotSpot -~~~~~~~ - -- Open HotSpot. Click **Record Data**: - -.. image:: img/cpp_profiler_hotspot_welcome.png - -- In the next window, specify the path to the Godot binary that includes debug symbols. -- Specify command line arguments to run a specific project, with or without the editor. -- The path to the working directory can be anything if an absolute path is used - for the ``--path`` command line argument. Otherwise, it must be set to that - the relative path to the project is valid. -- Make sure **Elevate Privileges** is checked if you have administrative privileges. - While not essential for profiling Godot, this will ensure all events can be captured. - Otherwise, some events may be missing in the capture. - Your settings should now look something like this: - -.. image:: img/cpp_profiler_hotspot_record.png - -- Click **Start Recording** and perform the actions you wish to profile in the editor/project. -- Quit the editor/project normally or use the **Stop Profiling** button in HotSpot - to stop profiling early. Stopping profiling early can result in cleaner profiles - if you're not interested in the engine's quit procedure. -- Click **View Results** and wait for the profiling visualization to be generated: - -.. image:: img/cpp_profiler_hotspot_view_results.png - -- Use the tabs at the top to navigate between the different views. These views - show the same data, but in different ways. The **Flame Graph** tab is a good - way to see which functions take up the most time at a glance. These functions - are therefore the most important ones to optimize, since optimizing them will - improve performance the most. -- At the bottom of all tabs except **Summary**, you will also see a list of CPU threads - started by the engine among with the CPU utilization for each thread. - This lets you see threads that can be a bottleneck at a given point in time. - -.. image:: img/cpp_profiler_hotspot_flame_graph.png - -.. note:: - - If you don't want the startup procedure to be included in the profile, you - can also attach HotSpot to a running process by clicking **Record Data** - then setting the **Launch Application** dropdown option to **Attach To - Process(es)**. - - This process attachment-based workflow is similar to the one used by VerySleepy. - -Xcode Instruments -~~~~~~~~~~~~~~~~~ - -- Open Xcode. Select **Open Developer Tool** - **Instruments** from the **Xcode** app menu: -- Double-click on **Time Profiler** in the **Instruments** window: - -.. image:: img/cpp_profiler_xcode_menu.png - -- In the Time Profiler window, click on the **Target** menu, select **Choose target...** - and specify the path to the Godot binary, command line arguments and environment variables - in the next window. - -.. image:: img/cpp_profiler_time_profiler.png - -- You can also attach the Time Profiler to a running process by selecting it from the **Target** - menu. - -- Click the **Start an immediate mode recording** button to start profiling. - -.. image:: img/cpp_profiler_time_profiler_record.png - -- Perform the actions you wish to profile in the editor or project. When you're done, - click the **Stop** button. - -- Wait for the results to appear. -- At the bottom of the window you will see a call tree for all CPU threads started, and - the **Heaviest Stack Trace** overview. -- Select **Hide system libraries** in the **Call Tree** menu (at the bottom of window) to - remove external modules. -- You can use the timeline at the top of the window to display details for the specific time period. - -.. image:: img/cpp_profiler_time_profiler_result.png + profiling/sampling_profilers + profiling/tracing_profilers