指针间接与堆栈分配的成本是多少?

时间:2012-10-27 06:14:43

标签: c memory-management stack indirection

我有一个将被重复调用的绘制方法(每帧......)。在这个方法中,我有一些局部定义的变量(大约20个)。我正在考虑将这些放在一个结构中,并将指针作为参数传递给该方法。这是希望间接操作比将变量放在堆栈上更快。

总的来说,这里存在合理的性能差异吗?

1 个答案:

答案 0 :(得分:5)

将变量放在堆栈上(至少在x86处理器上)非常快。在x86处理器上,使用堆栈数量在函数开头减去一次并在结尾添加一次;添加更多变量只会改变数字,不会让它变得更慢。如果你正在使用间接,那可能是一些操作,所以它可能会慢一点,但如果你的编译器把那个结构指针放在一个寄存器中,它可能就像加载和存储一样快。

我会坚持使你的代码更简单,因为它仍然是一个微优化,你应该只在你分析并确定它是一个瓶颈后才考虑它。

相关问题