Speed

The benchmark application measures loading and preprocess generation for a set of benchmark meshes, with additional query benchmarks then also executed for each mesh.

Long paths

The 'Long paths' query benchmark times pathfinding for all pairs of start and end positions from a set of positions distributed over the mesh being benchmarked.

Pathfinding with dynamic obstacles

The 'Dynamic obstacles pathfinding' query benchmark measures performance for pathfinding queries with a number of very dynamic obstacles included in the query collision context.
For each 'obstacle iteration', a set of obstacles is moved to random new positions, with a small number of pathfinding queries then executed for each such iteration.

The queries in this benchmark are also 'long paths', for pairs of points generated at random over the entire mesh being benchmarked.

Setup and 'Long paths' query benchmark, release 5.32, x86 build on an Intel E6400 at 2.13gHz

Mesh Loading time Preprocess generation time Paths queried Average points per path Average query time
mesh1 ~0.01 seconds ~0.01 seconds 1770 12.1282 0.000018 seconds
flatshead_dungeon ~0.01 seconds 0.06 seconds 1770 22.8164 0.0001 seconds
thainesford ~0.01 seconds 0.69 seconds 1770 15.0831 0.00025 seconds
thainesford (optimised) ~0.01 seconds 0.9 seconds 1770 13.07 0.00018 seconds

Pathfinding against dynamic obstacles, release 5.32, x86 build on an Intel E6400 at 2.13gHz

Mesh Number of obstacles Queries per obstacle iteration Placement and setup Average query time
flatshead_dungeon 5 10 below 0.00001 seconds 0.00025 seconds
flatshead_dungeon 10 10 below 0.00001 seconds 0.00026 seconds
flatshead_dungeon 20 10 0.000032 seconds 0.00031 seconds
thainesford 5 10 0.000046 seconds 0.00050 seconds
thainesford 10 10 0.0001 seconds 0.00056 seconds
thainesford 20 10 0.0001 seconds 0.00073 seconds
thainesford (optimised) 5 10 0.000019 seconds 0.00032 seconds
thainesford (optimised) 10 10 0.000034 seconds 0.00038 seconds
thainesford (optimised) 20 10 0.00007 seconds 0.00048 seconds

Memory

The source code for the memory benchmark is in the 'memory' project of the samples workspace.
You can also run the prebuilt 'SDKRoot\bin\memory.exe' directly.
Note that this benchmark cannot be run in the 'testbed-only' version of the SDK.

Bytes allocated - Release 5.32

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 51968 71572 77416 86802
flatshead_dungeon 52224 249036 306484 422076
thainesford 52224 446948 737186 1226158
thainesford (optimised) 52224 446948 600314 861848

Archived benchmark results

Optimisation of the SDK is a continuous process.
You can see how the performance and memory footprint of the SDK has improved over past releases, on this page (on the subnav bar).

Running the benchmark

Information about running the benchmark can be found on this page.

Benchmark environments

The meshes used for the benchmark environments are shown on this page.