本文摘自网络,作者php是最好的语言,侵删。
最近在为推荐服务作性能调优,这个服务的主要逻辑是用离线计算的模型数据给请求中的每个广告打分,再返回这些广告的排序结果,这里面打分的过程其实就用请求中的数据拼成各种key,去查一个大的 map,这种计算非常多,成为了主要的性能瓶颈,代码比较老,使用的是 boost::unordered_map,为了解决这个问题,找了一些第三方库和标准库对比了一下下面是在一台 aws r4.xlarge
机器上的测试结果(注意编译的时候一定要加 -O2):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
可以看到 tsl::robin_map 的性能基本上能达到 std::unordered_map 的 10 倍,这个性能和操作系统以及库版本也有一定关系,实际生产环境中建议把代码拉下来在自己的环境下测试一下
相关阅读 >>
更多相关阅读请进入《性能》频道 >>