gpt4 book ai didi

c++ - vector::operator[] 开销

转载 作者:IT王子 更新时间:2023-10-28 23:28:08 26 4
gpt4 key购买 nike

显然,在分析我的(科学计算)C++ 代码后,25%(!)的时间花在调用 vector::operator[] 上。 .没错,我的代码将所有时间都花在阅读和写作 vector<float> 中。 s (还有一些 vector<int> s),但我仍然想知道 operator[] 是否应该有一些显着的开销与 C 风格的数组相比?

(我在 SO 上看到了另一个相关问题,但关于 []at() ——但显然,甚至 [] 对我来说都太慢了?!)

谢谢,安东尼

(编辑:仅供引用:在 Ubuntu 上使用 g++ -O3 版本 4.5.2)

最佳答案

在现代编译器中,在 Release模式下,启用优化后,与原始指针相比,使用 operator [] 没有没有开销:调用是完全内联的,并且解析为指针访问。

我猜你以某种方式复制了赋值中的返回值,并且 this 导致了指令中实际花费的 25% 时间。[不相关对于 floatint]

或者您的其余代码简直快得惊人。

关于c++ - vector::operator[] 开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6110361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com