2015-09-09 9 views
6
function MyFunc(const Value: Integer): Integer; 
const 
    MyArray: array[0..255] of Byte = (...); // values of the array here 

begin 
    ... // Some codes here 
    Result := Integer(MyArray[Value shr 58]); 
end; 

MyFuncの外側にあると宣言すると、繰り返し呼び出しのパフォーマンスが向上しますMyFunc関数外の配列の宣言は、関数への繰り返し呼び出しのパフォーマンスを向上させますか?

+0

違いがあれば、テストして結果を表示してみませんか? :-) – Kromster

+0

@KromStern - 確かにコードは特定のメモリ位置を調べますが、どの範囲にありますか?私のコンピュータの同じ性能は、他のコンピュータの性能と必ずしも同じではないので、ここでは理論が必要です。しかし、ダビデは理論的かつ事実上、「内外」は重要ではないことを示しています。 – Aeoliyan

答えて

7

MyFunc外を宣言します繰り返しMyFuncとの呼び出しのパフォーマンスを向上させますか?

いいえがローカルであるかどうかにかかわらず、コンパイラは同じコードを生成します。より広いスコープの定数です。型付き定数は、そのスコープに関係なく、実行可能ファイルのデータセグメントに格納されます。

+0

ありがとうございました。 – Aeoliyan

関連する問題