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
