首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tbb并发容器性能

tbb并发容器性能
EN

Stack Overflow用户
提问于 2012-04-15 20:27:59
回答 1查看 1.2K关注 0票数 0

我有一个使用向量和unordered_map的程序,当我构建它们的时候,我从一个串行文件中读取,所以实际上我不能并行化构建过程,但是当我在我的程序中进一步使用它们时,我可以并行地读取它们“注意:我不修改这些容器上的任何值”

所以我打算在读到“使用英特尔tbb提供的并发容器是否有用”时,将这个程序并行化。因为我在没有它们的情况下对我的算法进行了串行计时,它需要1.4秒才能完成,但是当我在没有任何并行的情况下集成它们时,程序的性能是4秒!

有人能解释这种降级的原因吗?既然它们是线程安全的,我应该使用它们吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-15 20:38:54

如果您不更改容器和值,则可以通过使用串行版本来避免额外的“并发”开销。注意映射,不要使用operator[],因为如果您要查找的值不在映射中,它可能会更改容器。

请注意,您的时间差异可能来自不同的来源,如过多的线程旋转,锁定开销,错误的测量……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10162023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档