ホームページ  >  記事  >  ウェブフロントエンド  >  forloop_javascript スキルの効率を向上させるための for ループのパフォーマンス比較

forloop_javascript スキルの効率を向上させるための for ループのパフォーマンス比較

WBOY
WBOYオリジナル
2016-05-16 18:55:141317ブラウズ

for(int i=1,n=tempUser.length;i for(int i=1,;i 私は for(int i=1,;i すぐにテストしたところ、パフォーマンスの差は非常に小さく、後者の方がさらに効率的であることがわかりました。
このような結果になりましたが、思っていたこととは全く逆でした。もちろん、答えはほぼ同じです。
今日、この投稿に対して反響のある別の先輩のブログを見つけました。彼はテストを行い、大まかには前回の問題と同様の内容になるはずですが、より詳細なテストを行った結果、次のような結論に達しました。 length;i) for(int i=0,n=a.b.c.length;iテストも行いました:

コードをコピーします コードは次のとおりです:
クラス プログラム {
static void Main(string[] args) {
string s;
s = Console.ReadLine();

while(s != "0") {
人 p = 新しい人(10000000);

Console.WriteLine("for(int i=0;ilong l1 = DateTime.Now.Ticks;

for(int i = 0; i < p.Child.Alias.Length; i ) {
// Console.Write(lenArray[i]);

}
long l2 = DateTime.Now.Ticks

Console.WriteLine("Ending.nTime は : " (l2 - l1) ).ToString());

Console.WriteLine("for(int i=0,n=lenArray.length;i
long l3 = DateTime.Now.Ticks;
for(int i = 0, n = p.Child.Alias.Length; i < n; i ) {
/ /Console.Write(lenArray[i]);

}
long l4 = DateTime.Now.Ticks;
Console.WriteLine("Ending.nTime は : " (l4 - l3) ).ToString());
s = Console.ReadLine();
Console.Read()
}


; >


データ量が多いほどクラスが大きくなり、違いがより明確になります。

forloop_javascript スキルの効率を向上させるための for ループのパフォーマンス比較

結論:

影響は、変数が各ループで次のレベルの変数にアクセスする必要があることです。単純な a.length だけであれば、コンパイラはそのようなループ操作を最適化し、a.length をメモリまたはメモリよりも大きな場所に保存した可能性がありますが、マルチレベルではそれほど幸運ではありません。 for(int i=0;i

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。