Performance Improvement: Use a cache which caches result for getFacePositions.
authorLoic Blot <loic.blot@unix-experience.fr>
Sun, 15 Feb 2015 16:30:38 +0000 (17:30 +0100)
committerLoic Blot <loic.blot@unix-experience.fr>
Mon, 16 Feb 2015 10:27:44 +0000 (11:27 +0100)
commit7c8793cbea1ea83109b7d9d6974d3f6991efcec8
tree3a1c54acd3ee11fd73e11e81e2b83f917488a379
parented04e8e9e407f0dd57fa83a9732b3a3968cb80e0
Performance Improvement: Use a cache which caches result for getFacePositions.
This greatly reduce the number of std::list generated by caching the result, which is always constant for each radius selected.
In the callgrind map, you will see original:
  * 3.3M calls to std::list for 9700 calls to getFacePositions
In the modified version, you will see:
  * 3.3K calls to std::list for 6900 call to getFacePositions
Callgrind map is here: #2321

it's a huge performance improvement to l_find_node_near
src/clientiface.cpp
src/script/lua_api/l_env.cpp
src/util/numeric.cpp
src/util/numeric.h