c – 当它成为瓶颈时优化`std :: vector operator []`(向量访问)
发布时间:2020-12-16 03:44:34 所属栏目:百科 来源:网络整理
导读:gprof说我的高计算应用程序将53%的时间花在std :: vector ...之内operator [](unsigned long),其中32%用于一个使用频繁的向量.更糟糕的是,我怀疑我的并行代码未能扩展到3-6核心之外是由于相关的内存瓶颈.虽然我的应用确实花费了大量时间来访问和编写内存,
gprof说我的高计算应用程序将53%的时间花在std :: vector< ...>之内operator [](unsigned long),其中32%用于一个使用频繁的向量.更糟糕的是,我怀疑我的并行代码未能扩展到3-6核心之外是由于相关的内存瓶颈.虽然我的应用确实花费了大量时间来访问和编写内存,但似乎我应该能够(或者至少尝试)做得比52%更好.我应该尝试使用动态数组(大多数情况下大小保持不变)吗?这可能有助于解决可能出现的瓶颈问题吗?
实际上,我的首选解决方案是解决瓶颈并保留向量,以方便使用.基于以上所述,是否有任何可能的罪魁祸首或解决方案(tcmalloc已经出局)? 解决方法
你有没有检查过你的内存访问模式?它可能效率低下 – 缓存不友好.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |