2016-06-14 2 views
-5

ここにコードがあります!if else文について

はCODE1:

if(false) { 
    //1000 lines of code 
} 
else { 
    //1 line of code 
} 

コード2:

if(false) { 
    //1 line of code 
} 
else { 
    //1 line of code 
} 

2つのコード上での処理時間がどうなりますか?説明してみてください...

+3

解析のバリエーションを無視する:基本的には処理の場合と同じで、 '1行のコード 'が同じであると仮定します。ifの評価を実行し、その1行のコードを実行します。それらの1行のコードが異なる場合、評価に時間がかかります –

+0

文字列の長さはどれくらいですか? – Darren

+1

あなた自身でテストしてみませんか – Danijel

答えて

0

ok okこれはパフォーマンスに関して非常に良い質問です。

短い回答:同じ速度で実行されます。

コンパイラ、それはあなたのコードを遵守したときに、なぜ条件はコンパイラがプロセッサを要求されますfalseの場合には、1行でifでRAM

に低レベルのプロセッサコマンドの束である言語をmechineためにそれを翻訳します1行をジャンプするには、プログラムカウンタを1つ増やしてifブロックを無視し、代わりにelseブロックを実行します。オーバーヘッドはプログラムカウンタを増やすための1つのコマンドに見えます。

program counterはそれだけでelseブロックを実行するためにifブロックをジャンプして1000年にプログラムカウンタを増やすだけで同じになりますライン1000年にあなたが

を実行し、ifにしている回線たセーブレジスタです。 1つの操作でオーバーヘッドは同じです。

それでもelseと同じですが、条件が真の場合は同じifブロックが実行され、elseブロックがジャンプします。