From 085912e6396ea5bbee2f9994d54175b68f9f0a5f Mon Sep 17 00:00:00 2001 From: smix8 <52464204+smix8@users.noreply.github.com> Date: Fri, 20 Jan 2023 12:58:07 +0100 Subject: [PATCH] Add doc for Navigation Debug PerformanceMonitor Adds documentation for Navigation Debug PerformanceMonitor. --- .../img/navigation_debug_performance1.webp | Bin 0 -> 23542 bytes .../img/navigation_debug_performance2.webp | Bin 0 -> 23556 bytes .../navigation/navigation_debug_tools.rst | 28 ++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 tutorials/navigation/img/navigation_debug_performance1.webp create mode 100644 tutorials/navigation/img/navigation_debug_performance2.webp diff --git a/tutorials/navigation/img/navigation_debug_performance1.webp b/tutorials/navigation/img/navigation_debug_performance1.webp new file mode 100644 index 0000000000000000000000000000000000000000..100946d50ca64dce81b415d63dedb6b2f66b8955 GIT binary patch literal 23542 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 R{)k9u4Z#1W)d-`&e*nS&1E>H1 literal 0 HcmV?d00001 diff --git a/tutorials/navigation/img/navigation_debug_performance2.webp b/tutorials/navigation/img/navigation_debug_performance2.webp new file mode 100644 index 0000000000000000000000000000000000000000..657c5e430207aca5caa153abfe68101f57d2a064 GIT binary patch literal 23556 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 literal 0 HcmV?d00001 diff --git a/tutorials/navigation/navigation_debug_tools.rst b/tutorials/navigation/navigation_debug_tools.rst index 2fe679805..a2dbc0e7b 100644 --- a/tutorials/navigation/navigation_debug_tools.rst +++ b/tutorials/navigation/navigation_debug_tools.rst @@ -59,3 +59,31 @@ The connections can be made visible through geometry with the navigation debug ` .. note:: Edge connections are only visible when the NavigationServer is active. + +Debug Performance +----------------- + +To measure NavigationServer performance a dedicated monitor exists that can be found within the Editor Debugger under `Debugger->Monitors->NavigationProcess`. + +.. image:: img/navigation_debug_performance1.webp + +NavigationProcess shows how long the NavigationServer spends updating its internals this update frame in milliseconds. +NavigationProcess works similar to Process for visual frame rendering and PhysicsProcess for collision and fixed updates. + +NavigationProcess accounts for all updates to ``navigation maps``, ``navigation regions`` and ``navigation agents`` as well as all the ``avoidance calculations`` for the update frame. + +.. note:: + + NavigationProcess does NOT include pathfinding performance cause pathfinding operates on the navigation map data independently from the server process update. + +NavigationProcess should be in general kept as low and as stable as possible for runtime performance to avoid frame rate issues. +Note that since the NavigationServer process update happens in the middle of the physics update an increase in NavigationProcess will automatically increase PhysicsProcess by the same amount. + +Navigation also provides more detailed statistics about the current navigation related objects and navigation map composition on the NavigationServer. + +.. image:: img/navigation_debug_performance2.webp + +Navigation statistics shown here can not be judged as good or bad for performance as it depends entirely on the project what can be considered as reasonable or horribly excessive. + +Navigation statistics help with identifying performance bottlenecks that are less obvious because the source might not always have a visible representation. +E.g. pathfinding performance issues created by overly detailed navigation meshes with thousand of edges / polygons or problems caused by procedural navigation gone wrong.