谷歌::密
我正在为几个平台(Android,iOS以及将来的某些平台甚至某种平台)开发手机游戏。
我试图决定是否使用tr1 :: unordered_map或google :: dense_hash_map从资源管理器中检索纹理(用于使用OpenGL进行后续绑定)。 通常这种情况每秒可能发生几次(每帧N帧,我的游戏运行速度约为60 fps)
注意事项是:
欢迎任何想法或建议。
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/
与STL一起用于标准容器。 它们具有可预测的行为,并且可以在STL算法/迭代器中无缝地使用。 STL还为您提供了一些性能保证。
这也应该保证可移植性。 大多数编译器都实现了新标准。
在我开发的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
。
上一篇: google::dense
下一篇: What is the replacement for MavenProjectBuilder which is deprecated in maven 3?