1

メインループに ~200hz という関数があります。NXTで実行しているため、プロセッサはかなり遅いです。私の関数では、変数をインスタンス化し、それを画面に書き込み、終了します。プロセッサの速度のため、この関数はできるだけ速くする必要があり、グローバル スコープで変数を宣言して関数が呼び出されるたびに変数をリセットするか、関数内でインスタンス化する方が速いかどうか疑問に思っていました。明確にするために、どの例がより高速でしょうか?

 int foo=0;
 void bar() {
    foo=0;
    //do something with foo
 }

void bar() {
   int foo=0;
   //do something with foo
}

明らかに、グローバル変数は「悪い」と見なされるため、コードで 2 番目のスニペットを使用したいと思いますが、NXT プロセッサは非常に遅いです。

4

2 に答える 2

1

このような場合は、両方のオプションの速度を単純に測定することをお勧めします。特に、コンパイラがコードをどのようにコンパイルしているかさえわからない場合は特に、それらをテストせずにどちらが優れているかを確実に知る方法はありません。

于 2014-08-29T15:03:43.967 に答える