我在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表的效率一般会降低,这样用户就没有办法显示避免这个问题了。