c – 当它成为瓶颈时优化`std :: vector operator []`(向量访问)

前端之家收集整理的这篇文章主要介绍了c – 当它成为瓶颈时优化`std :: vector operator []`(向量访问)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
gprof说我的高计算应用程序将53%的时间花在std :: vector< ...>之内operator [](unsigned long),其中32%用于一个使用频繁的向量.更糟糕的是,我怀疑我的并行代码未能扩展到3-6核心之外是由于相关的内存瓶颈.虽然我的应用确实花费了大量时间来访问和编写内存,但似乎我应该能够(或者至少尝试)做得比52%更好.我应该尝试使用动态数组(大多数情况下大小保持不变)吗?这可能有助于解决可能出现的瓶颈问题吗?

实际上,我的首选解决方案是解决瓶颈并保留向量,以方便使用.基于以上所述,是否有任何可能的罪魁祸首或解决方案(tcmalloc已经出局)?

解决方法

你有没有检查过你的内存访问模式?它可能效率低下 – 缓存不友好.
原文链接:https://www.f2er.com/c/110443.html

猜你在找的C&C++相关文章