1

我很欣赏这是一个微优化,但我感兴趣的是,static与非实现相比,将函数或成员变量声明为是否提供任何性能提升static

我记得读过const可用于编译器进行优化的文章,所以这让我想知道是否static有任何类似的优势。

4

3 回答 3

7

考虑到非变量static和非static变量的语义截然不同,你是否可以声明static真的与性能无关。

此外,缓存和其他问题很可能意味着“不”。

于 2012-05-29T21:47:37.710 回答
1

如果构建需要很长时间(例如预先计算的缓冲区或从磁盘读取的内容),它可能用于数据。通常,这仅在数据不可变时才是理想的。

于 2012-05-29T21:47:20.613 回答
0

@DeadMG 已经指出将成员变量更改为静态将完全改变语义,这同样适用于静态函数。

一般来说,答案是否定的,static对性能没有帮助(也没有const),但static可以提供帮助的一种方法是在 ELF 共享库中,其中静态函数在外部不可见,因此不需要调用它通过过程链接表,它提供了一个小的性能优势,在为共享库编写代码时值得考虑。

于 2012-05-29T23:02:06.970 回答