3

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

一般来说,这里是否存在合理的性能差异?

4

1 回答 1

5

将变量放在堆栈上(至少在 x86 处理器上)非常快。在 x86 处理器上,使用堆栈相当于在函数开头减一次,在结尾加一次;添加更多变量只会更改数字并且不会使其变慢。如果您正在使用间接,那可能需要更多操作,因此它可能会慢一些,但如果您的编译器将该结构指针放在寄存器中,它可能会同样快速加载和存储。

我会坚持使用任何使您的代码更简单的方法,因为无论如何它都是一个微优化,并且您应该只在您分析并确定它是一个瓶颈之后才考虑它。

于 2012-10-27T06:20:35.987 回答