Function 在函数外部声明数组是否会提高重复调用函数的性能? 函数MyFunc(常量值:整数):整数; 常数 MyArray:Byte=(…);//的数组[0..255]这里是数组的值 开始 ... // 这里有一些代码 结果:=整数(MyArray[值shr 58]); 结束;
将在Function 在函数外部声明数组是否会提高重复调用函数的性能? 函数MyFunc(常量值:整数):整数; 常数 MyArray:Byte=(…);//的数组[0..255]这里是数组的值 开始 ... // 这里有一些代码 结果:=整数(MyArray[值shr 58]); 结束;,function,delphi,Function,Delphi,将在MyFunc外部声明MyArray将提高重复调用MyFunc的性能 是否将MyArray声明在MyFunc之外会提高重复调用MyFunc的性能 不可以。无论MyArray是函数的局部变量,还是更大范围的常量,编译器都将生成相同的代码。类型化常量存储在可执行文件的数据段中,与它们的作用域无关。如果有任何不同,为什么不测试它并向我们显示结果?:-)@KromStern—确实,代码查看某个内存位置,但在哪个范围内?在我的计算机上的相同性能不一定在其他计算机上的相同性能,因此这里需要一个理论。然而,
MyFunc
外部声明MyArray
将提高重复调用MyFunc
的性能
是否将MyArray
声明在MyFunc
之外会提高重复调用MyFunc的性能
不可以。无论
MyArray
是函数的局部变量,还是更大范围的常量,编译器都将生成相同的代码。类型化常量存储在可执行文件的数据段中,与它们的作用域无关。如果有任何不同,为什么不测试它并向我们显示结果?:-)@KromStern—确实,代码查看某个内存位置,但在哪个范围内?在我的计算机上的相同性能不一定在其他计算机上的相同性能,因此这里需要一个理论。然而,大卫从理论和实践上证明,“内部/外部”并不重要。