没有代码示例,很难给出一个体面的解释,但 usr 的答案在大多数编程语言的情况下是非常正确的。
但是,对于 Flash 编译器,我确实有所保留。根据经验,自内联(与您所做的相反)通常是优化闪存中函数的最佳方法之一,因为函数调用开销非常高。
话虽如此,我同意 usr 的观点,即具有较少的局部变量很可能是您会看到性能提升的原因。Flash 没有块级作用域,这意味着函数中声明的所有变量在调用函数时都会分配内存。如果您的第二个代码块声明了仅在该特定代码块中有用的变量,并且该代码仅有时运行(如果它在 if 语句中),则可以解释性能提升。
您可以看到性能提升的示例:
public function foo() : void
{
var bar : MyObj;
//do stuff with bar
if(someValuesAreTrue)
{
var jad : oObj;
var jad2 : oObj;
//etc
//do something with jad
}
}
//changed to
public function foo() : void
{
var bar : MyObj;
//do stuff with bar
if(someValuesAreTrue)
{
subFunc();
}
}
private function subFunc() : void
{
var jad : oObj;
var jad2 : oObj;
//etc
//do something with jad
}
如果这不是您所处的情况,我会非常好奇地看到一些代码,因为它可以更好地了解自内联的其他性能提升替代方案。