我理解这是一个微优化,但我感兴趣的是,与非static
实现相比,声明函数或成员变量static
是否提供了任何性能提升?
我记得读过const
可以用于编译器优化,所以我想知道static
是否有任何类似的优点。
答案 0 :(得分:7)
考虑到static
和非static
变量具有极不同的语义,无论您是否可以声明static
与性能无关。
此外,缓存和其他问题可能意味着“不”。
答案 1 :(得分:1)
如果构造需要很长时间(例如预先计算的缓冲区或从磁盘读取的东西),它可以用于数据。通常,这只是在数据不可变时才是理想的。
答案 2 :(得分:0)
@DeadMG已经指出将成员变量更改为static会完全改变语义,这同样适用于静态函数。
一般来说,答案是否定的,static
无助于性能(and neither does const
),但static
可以帮助的一种方式是在ELF共享库中,其中静态函数不是外部可见,所以调用它不需要通过procedure linkage table,这给了一个小的性能优势,在为共享库编写代码时值得考虑。