wesnoth-dev, 

  I'd like to request an increase in the boost minimal version from 1.35 to 
1.36 to allow the use of boost::unordered_map and boost::unordered_set.  Both 
unordered_map and unordered_set are drop in replacements for the C++0x 
std::unordered_map and std::unordered_set, so the path to standardization 
should be smooth.


In the immediate term upgrading boost allows the acceptance of patch 2819 which 
speeds up the running time of unit_map 5-7%, by converting from std::map to 
unordered_map, and gaining the benefits of O(1) lookup times versus O(log n) 
times.

In the longer term here are some changes facilitated by a unordered map
1.  Change the default string storage in config to unordered_mapped token, 
allowing single word comparison as opposed to string comparison.  20% speedup 
(I tried this and it is real)

2. Create a cache template for things like get_visible_unit, etc.  10%?  
(partially tried, but not systematically measured)
3. Create a least recently used cache to speedup things like vconfig parsing, 
and utils::split.  speedup depends on how many redundant calculations are done.
4. Other stuff like speeding up the teleport maps.  


Drawbacks:
1.  shadowmaster pointed out that this not supported on debian oldstable.  If 
we must support older distros without boost 1.36 we could wrap up std::map and 
std::set to look like unordered_map and unordered_set as an option.


thonsew

_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to