2012-10-27 51 views
3

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

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

+1

你尝试了吗? –

+0

现在把它拼在一起,虽然这是一个漫长的过程,所以我想我会去教育自己。 ;) –

回答

5

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

我会坚持使用任何使你的代码更简单,因为它是一个微型的优化,无论如何,你应该只考虑你已经成型后确定这是一个瓶颈。

+0

是的 - 唯一一次我会这样做,如果结构预计将保持呼叫一些状态。 –