C中的静态函数可能会更快,因为编译器的优化器可以看到所有的调用站点,因此可以优化被调用函数的epilog和序言?静态函数更快?
静态函数更快?
回答
它理论上可以。然而,同时一些现代编译器可以执行所谓的“全局优化”,其基于分析跨翻译单元的代码之间的关系。这可以包括分析整个程序中给定函数的所有调用站点(而不是单个翻译单元),并可能将这种优化扩展到非静态函数。
它可以使编译器更愿意内联,是的。但是,一如既往,这取决于编译器。您必须测试并检查输出组件以确保。
如果您的函数是在与定义的函数相同的翻译单元中调用的(显然需要使用static
函数),编译器可以轻松地内联此类调用,而不管函数是否声明为static
。
一些质量编译器也将执行整个程序优化,因此即使对不同翻译单元中的函数调用也可能发生内联和其他优化。
是的!你能说'LLVM'吗?在编程实践中看起来像绝对的东西往往是昙花一现。 – 2010-02-12 15:41:59
@Tim:+1 <3 LLVM(和其他动态编译系统)。但是,严重的是,甚至更高端的Visual C++版本也会为你完成整个程序的优化。 – 2010-02-12 15:44:07
贫穷的海湾合作委员会还不能做:(但我听到工作正在进行中,以添加它。 – 2010-02-12 15:57:15
- 1. 静态函数导致更多的静态函数
- 2. 静态函数静态函数
- 3. C++更快?静态成员函数还是普通的?
- 4. 静态函数
- 5. 静态函数
- 6. 在C++中更新静态函数中的非静态成员
- 7. Integer.valueOf()静态函数
- 8. DLL静态函数
- 9. php静态函数
- 10. 静态函数swift
- 11. Java静态函数
- 12. 静态函数和非静态变量
- 13. 静态函数中的静态变量?
- 14. 快速的问题:可以非静态函数修改静态变量在C++
- 15. 快速静态文件没有更新
- 16. 如何更改快速静态目录?
- 17. 如何从另一个静态函数调用静态函数
- 18. 从静态函数调用非静态函数
- 19. 静态函数常量静态成员函数
- 20. 静态函数调用非静态函数在C++
- 21. 如何使用非静态函数内部静态函数
- 22. 什么是函数中更快的传递对象或静态调用它
- 23. 有关C++中的静态函数的快速提问
- 24. 静态函数VS const函数
- 25. 构造函数和静态函数
- 26. 函子到静态成员函数和静态成员函数的类型
- 27. Java:重写静态函数
- 28. QThreadPool&QRunnable&静态函数
- 29. “......”一个C静态函数
- 30. 静态析构函数
这个问题实际上是一个合法的点评分问题,并使其成为社区wiki会阻止合法答案。 :-)(即我认为人们不愿意回答“真正”的问题,如果它不会帮助他们获得代表)。 – 2010-02-12 15:38:51
@Chris:我希望我知道这一点。我现在可以改变它吗? – Mike 2010-02-12 15:50:46
不,一旦帖子变成CW,就没有办法通过设计来解除它。请参阅:http://meta.stackexchange.com/questions/11740/what-are-community-wiki-posts-on-stack-overflow – 2010-02-12 15:54:09