Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我很欣赏这是一个微优化,但我感兴趣的是,static与非实现相比,将函数或成员变量声明为是否提供任何性能提升static?
static
我记得读过const可用于编译器进行优化的文章,所以这让我想知道是否static有任何类似的优势。
const
考虑到非变量static和非static变量的语义截然不同,你是否可以声明static真的与性能无关。
此外,缓存和其他问题很可能意味着“不”。
如果构建需要很长时间(例如预先计算的缓冲区或从磁盘读取的内容),它可能用于数据。通常,这仅在数据不可变时才是理想的。
@DeadMG 已经指出将成员变量更改为静态将完全改变语义,这同样适用于静态函数。
一般来说,答案是否定的,static对性能没有帮助(也没有const),但static可以提供帮助的一种方法是在 ELF 共享库中,其中静态函数在外部不可见,因此不需要调用它通过过程链接表,它提供了一个小的性能优势,在为共享库编写代码时值得考虑。