0

例えば:

... いくつかのコード

int sizeOfSomeObject = someObject.length();

...いくつかのコード、 sizeOfSomeObject はもう必要ありません

今、私は他のアクションのために他の int 変数が必要です (たとえば、いくつかのオブジェクトの位置のために)、そして私はジレンマを持っています: 新しい変数を作成するか、これに sizeOfSomeObject を使用します。最初のケースでは、可読性は維持しますが、パフォーマンスは低下します。2番目のケースでは、逆です。この状況でプログラマーは通常何をしますか?

4

5 に答える 5

4

最初のケースでは、可読性は維持しますが、パフォーマンスは低下します。2番目のケースでは、逆です。

それで、あなたはそれをベンチマークしましたか?いいえ、あなたはしなかったと思います。最近のほとんどのコンパイラは、レジスタの割り当て中に多くの積極的な分析を行うため、オプティマイザが、もう使用されていない変数があることを認識し、同じ型の新しい変数があることを認識した場合、2 つの変数を同じメモリ領域にマージするか、プロセッサレジスタ。パフォーマンスの低下を心配する必要はありません。


とにかく、時期尚早の最適化を行わないでください (これはそうです)。ケースの 90% では、読みやすさが「パフォーマンス」よりも重要です。

全体として、適切で異なるわかりやすい名前で新しい変数を作成してください。楽しみのために、このバージョンと同じ変数名を使用したバージョンをコンパイルし、生成されたアセンブリ (またはバイトコードなど) を見て、それらが同一であることを確認してください。

于 2013-05-11T15:19:14.810 に答える
1

さまざまなものにさまざまな名前付き変数を使用します。

このようなことに関して言えば、たった 1 つの変数がパフォーマンスに大きな影響を与えるとは思いません。ほとんどの言語では、変数が使用されなくなったときに、何らかの方法で変数をメモリからクリアするオプションがあります。そのため、後でコードを読んだときにコードがあなたや他の人にとって何かを意味するようにすることをお勧めします。

于 2013-05-11T15:18:45.943 に答える
0

そのような int が初期化される頻度によって異なります。大きくネストされた for ループでない場合、ほとんどの (すべての) プログラマーは最初の for ループを選択します。さらに、最近のほとんどのプログラミング言語にはガベージ コレクターがあり、残ったオブジェクトをクリーンアップします。

于 2013-05-11T15:18:45.050 に答える