これらの 2 つのビットのどちらがより速く実行 (カウント) されますか?
var i = 0;
while(true){
i++;
}
また
var i = 0;
inc = function(){
i++;
inc();
}
ループされたコード/関数が長くなると、推奨される方法は変わりますか?
これらの 2 つのビットのどちらがより速く実行 (カウント) されますか?
var i = 0;
while(true){
i++;
}
また
var i = 0;
inc = function(){
i++;
inc();
}
ループされたコード/関数が長くなると、推奨される方法は変わりますか?
再帰の終了条件がないため、これによりスタック オーバーフローが発生するだけです。
var i = 0;
inc = function(){
i++;
inc();
}
十分に優れているi
場合、これは標準のループよりも速く失敗します。
より一般的には、ループよりも関数の呼び出しの方がオーバーヘッドが大きくなります。コードを再利用可能または読み取り可能にするのに役立つ場合は、関数を作成します。ループは高速です。
反復回数が非常に少ない場合は、それほど重要ではありません。関数を呼び出すとオーバーヘッドが増えますが、短いループでは大きな違いはありません。
2 番目の方法は、スタック サイズによって制限されます。繰り返しが多すぎると、スタック スペースが不足してクラッシュします。
したがって、最初の方法はより高速に実行されますが、2 番目の方法は、速度が違いを生むのに十分な長さのループでクラッシュする大きなリスクがあるため、問題全体は意味がありません。