这个问题听起来可能相当初级,但这是我与另一个与我一起工作的开发人员进行的一场辩论。
我注意的是在可能的地方堆叠分配东西,而不是堆分配它们。他跟我说话,看着我,说没有必要,因为他们的表现是一样的明智。
我一直有这样的印象:增加堆栈的时间是固定的,堆分配的性能取决于堆分配的当前复杂性(找到合适大小的漏洞)和去分配(折叠漏洞以减少碎片,因为如果我没有弄错的话,许多标准库实现需要时间在删除过程中做到这一点)。
在我看来,这可能是非常依赖于编译器的。特别是对于这个项目,我使用的是都会的编译器PPC建筑。对这种组合的洞察力将是最有帮助的,但总的来说,对于GCC和MSVC+来说,情况是怎样的呢?堆分配不像堆栈分配那样高性能吗?没有区别吗?或者是如此微小的差异变成了毫无意义的微观优化。
哪个更快:堆栈分配还是堆分配