Speed

Setup and query times - Release 4_06, on a p4, 2gHz

Mesh Loading time Preprocess generation time Paths queried Average points per path Average query time
flatshead_dungeon 1.359 seconds 4.844 seconds 1596 22.4229 0.000508772 seconds

The set of points used in the speed benchmark changed between 4_06 and 4_09, with the benchmark now based on a pseudo random set of positions from iMesh::generateRandomPosition().

Setup and query times - Release 4_09, on a p4, 2gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.125 seconds 0.156 seconds 1770 0 12.1288 0.000141243 seconds
flatshead_dungeon 1.531 seconds 3.594 seconds 1770 0 22.2243 0.00049435 seconds
thainesford 2.937 seconds 28.094 seconds 1653 117 16.9722 0.00515537 seconds

Setup and query times - Release 4_13, on a p4, 2gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.047 seconds 0.062 seconds 1770 0 12.1288 0.000079661 seconds
flatshead_dungeon 0.688 seconds 1.422 seconds 1770 0 22.2243 0.000362147 seconds
thainesford 1.109 seconds 9.219 seconds 1770 117 16.9722 0.00302825 seconds

Setup and query times - Release 4_25, on a p4, 2gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.015 seconds 0.047 seconds 1770 0 12.1288 0.0000881356 seconds
flatshead_dungeon 0.14 seconds 1.079 seconds 1770 0 22.2243 0.000379661 seconds
thainesford 0.297 seconds 8.359 seconds 1770 117 16.9589 0.00291299 seconds

The set of points generated for the 'thainesford' mesh changed between 4_25 and 4_09, because of a change in the way 'building external shapes' are represented.

Setup and query times - Release 4_59, on an Athlon XP 2.0gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.015 seconds 0.031 seconds 1770 0 12.1288 0.0000531073 seconds
flatshead_dungeon 0.078 seconds 0.453 seconds 1770 0 22.2243 0.000246893 seconds
thainesford 0.313 seconds 4.281 seconds 1770 0 15.0746 0.00105085 seconds

Setup and query times - Release 5.00, on an Athlon XP 2.0gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0 seconds 0.016 seconds 1770 0 12.1288 0.0000531073 seconds
flatshead_dungeon 0.078 seconds 0.407 seconds 1770 0 22.2243 0.000255932 seconds
thainesford 0.281 seconds 3.25 seconds 1770 0 15.0898 0.00069774 seconds

Setup and query times - Release 5.03, on an Athlon XP 2.0gHz

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.015 seconds 0.016 seconds 1770 0 12.1288 0.0000525424 seconds
flatshead_dungeon 0.063 seconds 0.313 seconds 1770 0 22.2243 0.000238418 seconds
thainesford 0.125 seconds 3.156 seconds 1770 0 15.0898 0.000662147 seconds

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

(The point sequence for generated flatshead_dungeon and thainesford benchmarks changed in this release due to the addition of the dynamic obstacles benchmarks, but has since been reverted back to the sequence previously generated, by setting the necessary seed values.)

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0 seconds 0.015 seconds 1770 0 12.1288 0.000044 seconds
flatshead_dungeon 0.032 seconds 0.25 seconds 1770 0 22.2243 0.000176 seconds
thainesford 0.062 seconds 2.703 seconds 1770 0 17.268 0.000442 seconds

Pathfinding against dynamic obstacles, release 5.10, 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 0.000375 seconds 0.0006223 seconds
flatshead_dungeon 10 10 0.000438 seconds 0.000699 seconds
flatshead_dungeon 20 10 0.000375 seconds 0.000909 seconds
thainesford 5 10 0.000375 seconds 0.001338 seconds
thainesford 10 10 0.000375 seconds 0.001736 seconds
thainesford 20 10 0.0004 seconds 0.003109 seconds

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

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.015 seconds 0.016 seconds 1770 0 12.1288 0.000035 seconds
flatshead_dungeon 0.015 seconds 0.25 seconds 1770 0 22.2243 0.000176 seconds
thainesford 0.062 seconds 2.484 seconds 1770 0 15.0898 0.000476 seconds

Pathfinding against dynamic obstacles, release 5.13, 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 timer threshhold 0.00056 seconds
flatshead_dungeon 10 10 below timer threshhold 0.00069 seconds
flatshead_dungeon 20 10 0.00037 seconds 0.00085 seconds
thainesford 5 10 0.00008 seconds 0.00113 seconds
thainesford 10 10 0.0004 seconds 0.00137 seconds
thainesford 20 10 0.00043 seconds 0.00255 seconds

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

Mesh Loading time Preprocess generation time Paths queried (of which unreachable) Average points per path Average query time
mesh1 0.031 seconds 0.016 seconds 1770 0 12.1288 0.000027 seconds
flatshead_dungeon 0.031 seconds 0.188 seconds 1770 0 22.2243 0.000141 seconds
thainesford 0.047 seconds 2.0 seconds 1770 0 15.0898 0.00047 seconds

Pathfinding against dynamic obstacles, release 5.14, 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 timer threshhold 0.00034 seconds
flatshead_dungeon 10 10 0.000004 seconds 0.00046 seconds
flatshead_dungeon 20 10 0.0000037 seconds 0.00062 seconds
thainesford 5 10 below timer threshhold 0.00087 seconds
thainesford 10 10 0.0004 seconds 0.00108 seconds
thainesford 20 10 0.0004 seconds 0.00198 seconds

Setup and 'Long paths' query benchmark, release 5.15, 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.031 seconds 0.015 seconds 1770 12.1288 0.000027 seconds
flatshead_dungeon 0.016 seconds 0.156 seconds 1770 22.2243 0.00013 seconds
thainesford 0.047 seconds 2.0 seconds 1770 15.0898 0.00034 seconds

Pathfinding against dynamic obstacles, release 5.15, 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 timer threshhold 0.00034 seconds
flatshead_dungeon 10 10 below timer threshhold 0.00046 seconds
flatshead_dungeon 20 10 0.000018 seconds 0.00051 seconds
thainesford 5 10 below timer threshhold 0.00087 seconds
thainesford 10 10 0.0004 seconds 0.00094 seconds
thainesford 20 10 0.0004 seconds 0.00184 seconds

Setup and 'Long paths' query benchmark, release 5.24, 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.1288 0.000018 seconds
flatshead_dungeon ~0.01 seconds 0.14 seconds 1770 22.8277 0.00011 seconds
thainesford ~0.01 seconds 1.44 seconds 1770 15.0842 0.00027 seconds

Pathfinding against dynamic obstacles, release 5.24, 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 0.000015 seconds 0.00036 seconds
flatshead_dungeon 10 10 0.00012 seconds 0.00041 seconds
flatshead_dungeon 20 10 0.00013 seconds 0.00052 seconds
thainesford 5 10 0.000031 seconds 0.00069 seconds
thainesford 10 10 0.000094 seconds 0.00087 seconds
thainesford 20 10 0.00013 seconds 0.0013 seconds

Setup and 'Long paths' query benchmark, release 5.31, 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.1288 0.000018 seconds
flatshead_dungeon ~0.01 seconds 0.06 seconds 1770 22.8277 0.0001 seconds
thainesford ~0.01 seconds 0.67 seconds 1770 15.0842 0.00026 seconds
thainesford (optimised) ~0.01 seconds 0.9 seconds 1770 13.07 0.00019 seconds

Pathfinding against dynamic obstacles, release 5.31, 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 0.000015 seconds 0.00035 seconds
flatshead_dungeon 10 10 0.00003 seconds 0.00040 seconds
flatshead_dungeon 20 10 0.00005 seconds 0.00049 seconds
thainesford 5 10 0.000031 seconds 0.00067 seconds
thainesford 10 10 0.000032 seconds 0.0008 seconds
thainesford 20 10 0.00013 seconds 0.0011 seconds
thainesford (optimised) 5 10 0.00001 seconds 0.00039 seconds
thainesford (optimised) 10 10 0.000057 seconds 0.00048 seconds
thainesford (optimised) 20 10 0.000036 seconds 0.00067 seconds

Note that square root approximation handling was change for the path length metric for release 5.32, which changes some benchmark statistics.

Memory

Bytes allocated - Release 4_09

Mesh At start Mesh loaded Collision preprocess Pathfinding preprocess after preprocessGenerationCompleted() called
mesh1 49917 113585 256581 376009 375977
flatshead_dungeon 49921 739237 2220853 3450421 3450389
thainesford 49921 1564781 6583769 8771909 7948549

Bytes allocated - Release 4_13

Mesh At start Mesh loaded Collision preprocess Pathfinding preprocess after preprocessGenerationCompleted() called
mesh1 56853 133029 276833 294117 294085
flatshead_dungeon 56857 895025 2385369 2588321 2588289
thainesford 56857 1779961 6918585 7967741 7087585

Bytes allocated - Release 4_25

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added after preprocessGenerationCompleted() called
mesh1 43001 131687 253784 271084 271052
flatshead_dungeon 43009 1025944 2279162 2482130 2482098
thainesford 43009 1915732 5004836 6054008 5173852

Bytes allocated - Release 4_59

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 90473 168677 185305 206545
flatshead_dungeon 90473 957537 1136821 1374637
thainesford 90473 1580893 2140745 4609829

Bytes allocated - Release 5.00

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 84123 162528 178530 199794
flatshead_dungeon 84123 951390 1122288 1360126
thainesford 84123 1583904 2135388 3366995

Bytes allocated - Release 5.03

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 91587 154288 170676 184981
flatshead_dungeon 91587 787906 965118 1125685
thainesford 91587 1076668 1644512 2496060

Bytes allocated - Release 5.13

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 95938 149790 165958 178639
flatshead_dungeon 95962 701609 877329 1019750
thainesford 95962 981453 1476657 2261713

Bytes allocated - Release 5.14

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 95578 146882 162050 174659
flatshead_dungeon 95602 674821 839605 981954
thainesford 95602 966149 1453825 2238781

Bytes allocated - Release 5.21

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 95584 150680 155804 169144
flatshead_dungeon 95608 717916 771720 924276
thainesford 95608 978916 1343364 2133240

Bytes allocated - Release 5.23

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 95604 137000 142124 155472
flatshead_dungeon 95628 540844 594648 747212
thainesford 95628 780032 1144480 1934364

Bytes allocated - Release 5.26

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 97644 131544 136772 150112
flatshead_dungeon 97772 461188 514792 667008
thainesford 97772 692080 1056528 1846404

Bytes allocated - Release 5.27

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 91244 118452 123780 137116
flatshead_dungeon 91436 374876 428516 580728
thainesford 91436 592296 947620 1737492

Note that the pathfinding agent shape in the memory benchmarks was changed to an axis aligned square for release 5.31, matching the agent shape used for the query time benchmarks, but slightly increasing some memory footprint measures,

Bytes allocated - Release 5.31

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 98392 126340 132164 144546
flatshead_dungeon 98648 385616 443033 595928
thainesford 98648 594024 877716 1552474
thainesford (optimised) 98648 594024 741900 1107390

Bytes allocated - Release 5.32

Mesh At start Mesh loaded Collision preprocess added Pathfinding preprocess added
mesh1 51968 79908 85752 98134
flatshead_dungeon 52224 339084 396632 549516
thainesford 52224 547592 831408 1506166
thainesford (optimised) 52224 547592 695592 1061082