我有五个函数,平均被调用10000次以上。所有函数都会修改/使用某些变量。
我知道使用全局变量是不好的做法。但是为了性能考虑,保持它们为全局变量而不传递它们是否有意义 - 特别是当我这么多次调用函数时?
或者说,从性能上来看,我不会获得太多好处吗?
我知道使用全局变量是不好的做法。但是为了性能考虑,保持它们为全局变量而不传递它们是否有意义 - 特别是当我这么多次调用函数时?
或者说,从性能上来看,我不会获得太多好处吗?
然而,在采取这样的措施之前,应该对此代码进行分析。在大多数平台上,对于任何非微不足道的函数,传递参数和访问它们所需的时间都是微不足道的。任何潜在的性能提升都将以更难维护的代价为代价。
通过使用其他优化技术,很可能会实现更大的性能提升。查看 this 问题以了解一些要尝试的方法。
一般人们会尽量避免使用全局参数,除非确实需要它们(即除非某些东西真正具有全局状态)。特别是对于多线程应用程序,使用全局参数可能会使事情比必要的更加困难。
就性能而言,我听说有些人暗示访问全局变量在某些情况下可能会更快,尽管我觉得很难相信,但唯一确定的方法是为您的特定情况实际进行一些基准测试。
就个人而言,我永远不会这样做。我会考虑将参数传递给函数的方式(例如,在处理大型数据类型的情况下,请确保通过指针而不是通过复制来传递),并确保向编译器传递正确(最佳)的优化设置。
希望这可以帮助到您。
静态
)链接变量同样适用。全局状态意味着处理该状态的程序部分只有一个“实例”,并且它不能安全地用作库代码。在大约四到五年后,通常会发现这个想法好像很好... - R.. GitHub STOP HELPING ICE