diff options
author | gregorycu <gregory.currie@gmail.com> | 2016-10-09 00:08:35 +1100 |
---|---|---|
committer | Ner'zhul <nerzhul@users.noreply.github.com> | 2016-10-08 15:57:36 +0200 |
commit | 9393e4a0a8e32905d32a9dc58131218aee318686 (patch) | |
tree | e7e112dd7a4a24492add8690fc50113c287aa7ca /src | |
parent | 3de9ae4e6054bb420bea8ad5621a0b76552a3621 (diff) | |
download | minetest-9393e4a0a8e32905d32a9dc58131218aee318686.tar.gz minetest-9393e4a0a8e32905d32a9dc58131218aee318686.tar.bz2 minetest-9393e4a0a8e32905d32a9dc58131218aee318686.zip |
Speed up emerge thread by using unordered map in a few places. Looking at 25% speedup in Emerge thread on Just Test.
Diffstat (limited to 'src')
-rw-r--r-- | src/nodedef.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/nodedef.cpp b/src/nodedef.cpp index fa2e621f2..39ea1a60e 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -810,12 +810,12 @@ private: // item aliases too. Updated by updateAliases() // Note: Not serialized. - std::map<std::string, content_t> m_name_id_mapping_with_aliases; + UNORDERED_MAP<std::string, content_t> m_name_id_mapping_with_aliases; // A mapping from groups to a list of content_ts (and their levels) // that belong to it. Necessary for a direct lookup in getIds(). // Note: Not serialized. - std::map<std::string, GroupItems> m_group_to_items; + UNORDERED_MAP<std::string, GroupItems> m_group_to_items; // Next possibly free id content_t m_next_id; @@ -938,7 +938,7 @@ inline const ContentFeatures& CNodeDefManager::get(const MapNode &n) const bool CNodeDefManager::getId(const std::string &name, content_t &result) const { - std::map<std::string, content_t>::const_iterator + UNORDERED_MAP<std::string, content_t>::const_iterator i = m_name_id_mapping_with_aliases.find(name); if(i == m_name_id_mapping_with_aliases.end()) return false; @@ -968,7 +968,7 @@ bool CNodeDefManager::getIds(const std::string &name, } std::string group = name.substr(6); - std::map<std::string, GroupItems>::const_iterator + UNORDERED_MAP<std::string, GroupItems>::const_iterator i = m_group_to_items.find(group); if (i == m_group_to_items.end()) return true; @@ -1050,7 +1050,7 @@ content_t CNodeDefManager::set(const std::string &name, const ContentFeatures &d i != def.groups.end(); ++i) { std::string group_name = i->first; - std::map<std::string, GroupItems>::iterator + UNORDERED_MAP<std::string, GroupItems>::iterator j = m_group_to_items.find(group_name); if (j == m_group_to_items.end()) { m_group_to_items[group_name].push_back( @@ -1086,7 +1086,7 @@ void CNodeDefManager::removeNode(const std::string &name) } // Erase node content from all groups it belongs to - for (std::map<std::string, GroupItems>::iterator iter_groups = + for (UNORDERED_MAP<std::string, GroupItems>::iterator iter_groups = m_group_to_items.begin(); iter_groups != m_group_to_items.end();) { GroupItems &items = iter_groups->second; |