哪个更快?“结构的向量”还是“多个向量”?

哪个更快?“结构的向量”还是“多个向量”?,第1张

哪个更快?“结构向量”还是“多个向量”?

与“结构的向量”相比,“向量的结构”具有几个优点:

  • 如果您的内部循环没有使用该结构的每个元素,那么向量结构可以节省内存带宽,因为未使用的元素向量不会加载到缓存中。
  • 向量化更容易。向量结构可以使您使用处理器的向量处理指令(通过汇编,内在函数或巧妙的编译器)来加快内部循环。

另一方面,过早的优化是万恶之源:

  • 使用向量结构更加困难,尴尬和模糊。
  • 在您没有启动代码并运行之前,您通常不知道性能瓶颈在哪里。是否值得使您的代码更加冗长,脆弱和困难?直到您真正配置它,您才知道。
  • 向量结构编程的好处因情况而异。它并不总是产生加速。最终可能会导致性能下降。
  • 特别是,如果您的访问模式是随机的(相对于顺序访问或本地化访问而言),那么向量结构组织可能最终会从内存中加载 更多 无用的数据,如果每个缓存行都包含来自多个附近对象的元素…

因此,我的建议是默认使用向量结构,但请牢记向量结构作为替代(即,如果您希望使用顺序/本地访问模式,请确保稍后可以切换,但不要这样做)花费很多精力)。程序运行后,您可以对其进行概要分析,以查看对性能至关重要的部分的位置,并尝试使用向量结构和向量化 *** 作来发挥最大作用。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5666585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存