【发布时间】:2010-05-02 12:02:16
【问题描述】:
我对一个大的整数向量进行了广泛的计算。在计算过程中向量大小不会改变。向量的大小经常被代码访问。通常更快的是:使用vector::size() 函数或使用辅助常量vectorSize 存储向量的大小?
我知道编译器通常能够在设置正确的编译器标志时内联size() 函数,但是,使函数内联是编译器可以做但不能强制的事情。
【问题讨论】:
-
使用局部变量显然不会变慢。如果实际的速度差异对您很重要 - 计时。
-
闻起来很像过早的优化。
-
@NomeN,这更像是避免过早悲观。 OP 已经知道他的向量很大,所以
size()会被调用很多次。 -
没关系。即使是说它不会那么快的答案也承认它只会从两个指针中减去一个额外的减法。即使编译器没有优化它,那真的有什么意义吗?我对此表示怀疑。如果有疑问:测量。
-
@Autopulated:编译器右移我?