我在vc7中做了一个测试,插入50万条随机生成的记录到hash_map<string,int>中,结果令我大吃一惊。
随机字符串生成:字符串长度为1-12个小写字母,50万次,大概只有34万条不重复记录。
查询速度也有较大的差异,VC7 STL最差的命中查询在10ms。
VC7自带的stl的效率差得让人吃惊。并且hash_map::resize等方法也没有提供,在记录超过75%时hash表的效率一般会降低,这样用户就没有办法显示避免这个问题了。
随机字符串生成:字符串长度为1-12个小写字母,50万次,大概只有34万条不重复记录。
| vc7 STL | stlport 4.62 | |
| 前25万条记录 | 350ms/万条 | 200ms/万条 |
| 后25万条记录 | 进程没有反应 | 200ms/万条 |
查询速度也有较大的差异,VC7 STL最差的命中查询在10ms。
VC7自带的stl的效率差得让人吃惊。并且hash_map::resize等方法也没有提供,在记录超过75%时hash表的效率一般会降低,这样用户就没有办法显示避免这个问题了。
本文通过在VC7环境中进行大规模数据插入测试,对比了STLport 4.62与VC7自带STL库中hash_map的性能表现。结果显示,两者在插入速度和查询效率上存在显著差异。

703

被折叠的 条评论
为什么被折叠?



