返回信息流用stl中支持的hash_map来处理大量数据,反而发现速度很慢。程序中没有发现hash_map定义开辟内存空间大小的函数,好像是默认了。如果这样的话,处理100个不同数据和1万个不同数据开辟同样的空间,那后者显然碰撞的机会大得多。很奇怪,这样效率还没有stl::map高。
测试的数据量其实并不大,比如1000个不同的ip。
哪里出问题?
微软mfc提供的cmap函数,假如你估计有1000个不同的ip,那构造cmap时候大概申请120%大的空间,减少碰撞概率。hash_map中没有发现类似的。
这是一条镜像帖。来源:北邮人论坛 / cpp / #47501同步于 2010/12/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
大量数据时候hash_map问题
oscar
2010/12/9镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。