代码之家  ›  专栏  ›  技术社区  ›  GeoffreyF67

C/C++性能全局与Get/Set方法

  •  2
  • GeoffreyF67  · 技术社区  · 17 年前

    我看到这个问题是关于 globals are bad

    但是,我不是很确定。所以我的问题是,使用全局方法会比使用get/set方法调用更快吗?

    5 回复  |  直到 9 年前
        1
  •  11
  •   Peter    17 年前

    一个好的现代编译器应该内联get/set方法调用,这样可能就没有真正的区别了。

    几乎在任何情况下,更重要的是担心静态/全局是否会让您头疼,而不是性能影响,这几乎是无法检测到的。

        2
  •  3
  •   Iraimbilanja Iraimbilanja    17 年前

    (静态)

    实际上,全局的速度更快,因为访问局部需要将变量偏移量添加到堆栈指针的值中。

    但是你永远不会,, 曾经

        3
  •  3
  •   Darron    17 年前

    这是完全相同的贸易类型。

        4
  •  1
  •   Fostah    17 年前

    它可能会稍微快一点,但速度不会大幅提高。不过,全局使用getter和setter函数的做法确实降低了应用程序的大小。这种类型的大小节约是否有益于您的应用程序与您的目标平台相关。例如,在开发内存有限的嵌入式应用程序平台时,它可能是一个可行的解决方案。

        5
  •  1
  •   Tim Cooper    14 年前

    此外,它可能会在缓存位置上造成巨大的麻烦和/或破坏任何假定没有别名的优化。假设globals可以提高性能有些天真。