Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ static关键字是否提高了性能?_C++_Performance - Fatal编程技术网

C++ static关键字是否提高了性能?

C++ static关键字是否提高了性能?,c++,performance,C++,Performance,我理解这是一个微观优化,但我感兴趣的是,与非静态实现相比,将函数或成员变量声明为静态是否能提高性能 我记得读到const可以用于编译器优化,所以我想知道static是否也有类似的优势。如果构建需要很长时间,例如预计算的缓冲区或从磁盘读取的内容,它可能用于数据。通常,这仅在数据不可变时才理想。如果构建需要很长时间(例如,预计算的缓冲区或从磁盘读取的内容),则这可能适用于数据。通常,只有当数据是不可变的时,这才是理想的。考虑到静态变量和非静态变量具有极其不同的语义,是否可以声明静态实际上与性能无关

我理解这是一个微观优化,但我感兴趣的是,与非静态实现相比,将函数或成员变量声明为静态是否能提高性能


我记得读到const可以用于编译器优化,所以我想知道static是否也有类似的优势。

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

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

考虑到静态变量和非静态变量具有极其不同的语义,是否可以声明静态实际上与性能无关

此外,缓存和其他问题也可能意味着没有问题。

考虑到静态变量和非静态变量具有极其不同的语义,您是否可以声明静态实际上与性能无关


此外,缓存和其他问题也可能意味着没有问题。

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


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

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


一般来说,答案是否定的,静态没有帮助性能,但是静态可以帮助的一种方式是在ELF共享库中,在该库中,静态函数外部不可见,因此对它的调用不需要通过,在为共享库编写代码时,这会给性能带来一些小的好处,值得考虑。

这怎么会是重复的呢?这只提到函数?这不是链接问题的重复-这是关于静态成员函数与自由函数的问题,这是关于静态成员函数与非静态成员函数的问题。虽然给出的关闭原因是错误的,但我很难投票重新打开,因为这仍然是一个毫无意义的问题,至少在这种情况下,我不认为为了投票以另一个理由结束而重新开放有多大意义…@Jerry-我可以发现你的许多问题毫无意义-但如果他们遵循指导原则,我不会关闭它们。我们不能因为有些人觉得这些问题毫无意义就关闭它们,否则我会投票关闭所有COBOL问题。@user997112:很多?真正地我猜你还没有查看我的个人资料,看看我问了多少。无论如何,如果你不喜欢无意义的,我想这里正确的短语不是一个真正的问题。这怎么会是重复的呢?这只提到函数?这不是链接问题的重复-这是关于静态成员函数与自由函数的问题,这是关于静态成员函数与非静态成员函数的问题。虽然给出的关闭原因是错误的,但我很难投票重新打开,因为这仍然是一个毫无意义的问题,至少在这种情况下,我不认为为了投票以另一个理由结束而重新开放有多大意义…@Jerry-我可以发现你的许多问题毫无意义-但如果他们遵循指导原则,我不会关闭它们。我们不能因为有些人觉得这些问题毫无意义就关闭它们,否则我会投票关闭所有COBOL问题。@user997112:很多?真正地我猜你还没有查看我的个人资料,看看我问了多少。无论如何,如果你不喜欢无意义的,我想这里正确的短语不是一个真正的问题。