c - 堆栈和全局变量

标签 c gcc stack global-variables

我发现将全局变量移动到本地范围可以节省堆栈分配。

节省堆栈分配也会提高程序的性能和速度吗? 如果是这样,你能给我一些显示这种改进的公式吗?

最佳答案

将全局变量移至局部作用域实际上会增加堆栈分配要求。将全局变量移至局部范围将减少可执行文件的大小。也许这就是你的意思。

一般来说,将变量从全局范围移动到局部范围(反之亦然)可能不会产生什么性能差异。如果使用本地范围的任何东西都会有更好的性能,因为您将有更好的缓存使用模式。

但是,性能永远不应该成为在全局范围和本地范围之间进行选择的驱动标准。始终根据语义做出选择。始终优先选择本地范围而不是全局范围,因为这样做在语义上是合理的。

关于c - 堆栈和全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17384215/

相关文章:

java - Tizen Mobile 和 iPad Linux - 它是否允许 GCC 和 Java?

c - 如何在 C 中返回多维数组元素的索引?

c - C : does GCC follow the C99 spec, 中的链接还是我不了解规范?

c++ - 二维数组的 Big-O 插入

gcc - gcc 中用户定义部分的对齐

machine-learning - 当向预训练的 CNN 添加层时,您是添加到开头还是后面。它像队列还是堆栈?

css - 将 DIV 堆叠在一起?

stack - 如何将一个圆圈中心化为一张卡片?

指针和整数之间的比较,我该如何解决?它甚至不运行

c - 与 C 函数参数中的 char 数组大小相比,传递更大的 char 数组