C++ static关键字是否提高了性能?
我理解这是一个微观优化,但我感兴趣的是,与非静态实现相比,将函数或成员变量声明为静态是否能提高性能C++ static关键字是否提高了性能?,c++,performance,C++,Performance,我理解这是一个微观优化,但我感兴趣的是,与非静态实现相比,将函数或成员变量声明为静态是否能提高性能 我记得读到const可以用于编译器优化,所以我想知道static是否也有类似的优势。如果构建需要很长时间,例如预计算的缓冲区或从磁盘读取的内容,它可能用于数据。通常,这仅在数据不可变时才理想。如果构建需要很长时间(例如,预计算的缓冲区或从磁盘读取的内容),则这可能适用于数据。通常,只有当数据是不可变的时,这才是理想的。考虑到静态变量和非静态变量具有极其不同的语义,是否可以声明静态实际上与性能无关
我记得读到const可以用于编译器优化,所以我想知道static是否也有类似的优势。如果构建需要很长时间,例如预计算的缓冲区或从磁盘读取的内容,它可能用于数据。通常,这仅在数据不可变时才理想。如果构建需要很长时间(例如,预计算的缓冲区或从磁盘读取的内容),则这可能适用于数据。通常,只有当数据是不可变的时,这才是理想的。考虑到静态变量和非静态变量具有极其不同的语义,是否可以声明静态实际上与性能无关 此外,缓存和其他问题也可能意味着没有问题。考虑到静态变量和非静态变量具有极其不同的语义,您是否可以声明静态实际上与性能无关
此外,缓存和其他问题也可能意味着没有问题。@DeadMG已经指出,将成员变量更改为static将完全改变语义,这同样适用于静态函数
一般来说,答案是否定的,静态没有帮助性能,但是静态可以帮助的一种方式是在ELF共享库中,在该库中,静态函数外部不可见,因此对它的调用不需要通过,在为共享库编写代码时,它提供了一个小的性能优势,值得考虑。@DeadMG已经指出,将成员变量更改为静态将完全改变语义,这同样适用于静态函数
一般来说,答案是否定的,静态没有帮助性能,但是静态可以帮助的一种方式是在ELF共享库中,在该库中,静态函数外部不可见,因此对它的调用不需要通过,在为共享库编写代码时,这会给性能带来一些小的好处,值得考虑。这怎么会是重复的呢?这只提到函数?这不是链接问题的重复-这是关于静态成员函数与自由函数的问题,这是关于静态成员函数与非静态成员函数的问题。虽然给出的关闭原因是错误的,但我很难投票重新打开,因为这仍然是一个毫无意义的问题,至少在这种情况下,我不认为为了投票以另一个理由结束而重新开放有多大意义…@Jerry-我可以发现你的许多问题毫无意义-但如果他们遵循指导原则,我不会关闭它们。我们不能因为有些人觉得这些问题毫无意义就关闭它们,否则我会投票关闭所有COBOL问题。@user997112:很多?真正地我猜你还没有查看我的个人资料,看看我问了多少。无论如何,如果你不喜欢无意义的,我想这里正确的短语不是一个真正的问题。这怎么会是重复的呢?这只提到函数?这不是链接问题的重复-这是关于静态成员函数与自由函数的问题,这是关于静态成员函数与非静态成员函数的问题。虽然给出的关闭原因是错误的,但我很难投票重新打开,因为这仍然是一个毫无意义的问题,至少在这种情况下,我不认为为了投票以另一个理由结束而重新开放有多大意义…@Jerry-我可以发现你的许多问题毫无意义-但如果他们遵循指导原则,我不会关闭它们。我们不能因为有些人觉得这些问题毫无意义就关闭它们,否则我会投票关闭所有COBOL问题。@user997112:很多?真正地我猜你还没有查看我的个人资料,看看我问了多少。无论如何,如果你不喜欢无意义的,我想这里正确的短语不是一个真正的问题。