【发布时间】:2012-03-04 03:55:45
【问题描述】:
对于过程式编程,功能分解是维护复杂代码的理想选择。然而,函数是昂贵的——添加到调用堆栈、传递参数、存储返回地址。所有这些都需要额外的时间!当速度至关重要时,我如何才能两全其美?我想要一个高度分解的程序,没有函数调用引入的任何必要开销。我熟悉关键字:“inline”,但这似乎只是对编译器的建议,如果程序员使用不正确,它会产生更慢的程序。我正在使用g ++,所以-03标志会优化我调用函数的函数调用函数.. 我只是想知道,我的担忧是否有效以及是否有任何方法可以解决这个问题。
【问题讨论】:
-
通常不用担心。即使您不使用
inline关键字,一个好的编译器也可能会尽可能为您内联。 -
您的担忧无效。有些人在做一些可能很重要的事情,但是(1)不知何故,我不相信你处于那种情况,(2)那些人不会通过猜测和道听途说走得太远。
-
对 C++ 并不理想(我在 JS 上),但您还必须权衡对可维护、可重用和可单独测试的代码的担忧。
-
优化的第一条规则:你的代码总是足够快,直到它不够快。你会知道什么时候发生。
标签: c++ function optimization compiler-construction inline