我发现将全局变量移动到本地范围可以节省堆栈分配。
节省堆栈分配也会提高程序的性能和速度吗? 如果是这样,你能给我一些显示这种改进的公式吗?
最佳答案
将全局变量移至局部作用域实际上会增加堆栈分配要求。将全局变量移至局部范围将减少可执行文件的大小。也许这就是你的意思。
一般来说,将变量从全局范围移动到局部范围(反之亦然)可能不会产生什么性能差异。如果使用本地范围的任何东西都会有更好的性能,因为您将有更好的缓存使用模式。
但是,性能永远不应该成为在全局范围和本地范围之间进行选择的驱动标准。始终根据语义做出选择。始终优先选择本地范围而不是全局范围,因为这样做在语义上是合理的。
关于c - 堆栈和全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17384215/