【发布时间】:2011-04-26 13:03:45
【问题描述】:
我最近在 1996 年写的 article on game programming 中读到,使用全局变量比传递参数更快。
这曾经是真的吗?如果是的话,今天仍然如此吗?
【问题讨论】:
-
微优化的问题在于它们依赖于硬件。昨天的优化可能不会成为明天的优化。 15 年前的优化几乎可以保证在今天要么不太有效,要么就是无关紧要。更高级别的优化是永恒的,但低级别的细节会随着每一代硬件而改变。
-
我认为优化是在传递额外参数与不传递参数之间进行的(因为它已经作为全局可用),这意味着您避免为每个函数调用复制一个指针(涉及屏幕);不是因为 global 天生就比什么都快。
-
您应该对大多数游戏文章持保留态度,尤其是那些超过几年的游戏文章。游戏行业一直充满了糟糕的程序员,因为最早的游戏程序员是“C in C++”程序员,而现在他们是教新开发者的人。这很可悲。你最好先精通 C++,然后是一般的软件开发,然后游戏编程。这样你就知道什么时候该忽略所有的废话了。 (即使是 Game Programming Gems 8 中的至少一篇文章,这是本评论系列中的最新文章,也说了不正确的 C++ 内容。可悲!)
-
不敢相信这才14-15岁。模式 13 小时?将屏幕宽度硬编码为 320?那是80年代中期的东西。 1996 年,3D 加速开始受到关注。
标签: c++ c optimization