【发布时间】:2014-08-29 14:55:21
【问题描述】:
我的主循环中有一个名为 ~200hz 的函数。它在 NXT 上运行,因此处理器非常慢。在我的函数中,它实例化一个变量,将其写入屏幕,然后结束。由于处理器速度,我需要这个函数尽可能快,并且想知道在全局范围内声明一个变量并在每次调用函数时重置它是否更快,或者在函数中实例化它。为了澄清,哪个例子会更快?
int foo=0;
void bar() {
foo=0;
//do something with foo
}
对
void bar() {
int foo=0;
//do something with foo
}
显然,我想在我的代码中使用第二个 sn-p,因为全局变量被认为是“坏的”,但 NXT 处理器真的很慢。
【问题讨论】:
-
衡量差异。
-
使用第二个片段。显然只能使用寄存器来完成,而第一个 sn-p 可能(可能会)涉及 chache/memory/file
-
每秒 200 次?听起来您最多有 5 毫秒的时间来处理 foo。
-
你的处理器有多快?函数有多复杂?
-
将变量写入屏幕将使循环内外初始化之间的时间差相形见绌