Tag: 内存

哪个更快:堆栈分配或堆分配

这个问题可能听起来相当简单,但这是我和另一位与我合作的开发人员的辩论。 我正在考虑堆栈分配的东西,而不是分配给他们。 他正在跟我说话,看着我的肩膀,说这是没有必要的,因为他们的表现是一样的。 我始终认为堆栈的增长是一个固定的时间,堆分配的性能取决于堆的当前复杂性,以便分配(找到合适大小的空洞)和解除分配(减少空洞以减少分段)如果我没有弄错的话,许多标准库实现在删除期间需要时间来做这件事)。 这让我觉得这可能是非常依赖编译器的东西。 对于这个项目,我特别使用了一个Metrowerks编译器来实现PPC架构。 洞察这个组合将是最有帮助的,但一般来说,对于GCC和MSVC ++,情况如何? 堆分配不是堆栈分配的高性能吗? 有没有区别? 或者差异如此微小,就变成毫无意义的微观优化。