我正在为多个平台开发移动游戏(Android,iOS,有些甚至可能在将来使用某种控制台)。
我正在尝试决定是使用tr1::unordered_map还是google::dense_hash_map从资源管理器中检索纹理(以便以后使用OpenGL进行绑定)。通常这可能每秒发生几次(每帧N,我的游戏运行速度约为60 fps)
注意事项是:
欢迎任何想法或建议。
答案 0 :(得分:2)
http://attractivechaos.wordpress.com/2008/10/07/another-look-at-my-old-benchmark/
http://attractivechaos.wordpress.com/2008/08/28/comparison-of-hash-table-libraries/
答案 1 :(得分:1)
使用标准容器的STL。它们具有可预测的行为,可以在STL算法/迭代器中无缝使用。您还可以通过STL获得一些性能保证。
这也应该保证可移植性。大多数编译器都实施了新标准。
答案 2 :(得分:0)
在我开发的C ++项目中,我想知道类似的东西:哪一个最好,tr1:unordered_map
,boost::unordered_map
或std::map
?我最终声明了一个typedef
,可以在编译时控制:
#ifdef UnorderedMapBoost
typedef boost::unordered_map<cell_key, Cell> cell_map;
#else
#ifdef UnorderedMapTR1
typedef std::tr1::unordered_map<cell_key, Cell> cell_map;
#else
typedef std::map<cell_key, Cell> cell_map;
#endif // #ifdef UnorderedMapTR1
#endif // #ifdef UnorderedMapBoost
然后我可以在编译时控制使用哪一个,并对其进行分析。就我而言,可移植性最终变得更加重要,因此我通常使用std::map
。