あなたに50技を教えてASPを昇格させます.NETパフォーマンス(20):あなたのサイクルを認識
5040 ワード
(31)Know your loops
技31:
君を知るサイクル
for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.forはコレクションを巡る最も速い方法であり,foreachはやや遅く,LINQクエリは最も遅い.
テストコード:
テスト結果:
技31:
君を知るサイクル
for is the fastest way of iterating over a collection, foreach is a little slower, and LINQ queries are slowest.forはコレクションを巡る最も速い方法であり,foreachはやや遅く,LINQクエリは最も遅い.
テストコード:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Diagnostics;
namespace ConsoleApplicationExample
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("code test:");
Stopwatch watch = new Stopwatch();
// for loop
watch.Start();
for (int i = 0; i < 100000; i++) { ; }
watch.Stop();
Console.WriteLine("for loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds);
watch = new Stopwatch();
// while loop
watch.Start();
int loop = 0;
while (loop < 100000) { loop++; }
watch.Stop();
Console.WriteLine("while loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds);
watch = new Stopwatch();
// foreach loop
watch.Start();
int[] array = new int[100000];
foreach (int i in array) { ; }
watch.Stop();
Console.WriteLine("foreach loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds);
watch = new Stopwatch();
// foreach loop
watch.Start();
Array.ForEach(array, (i) => { ; });
watch.Stop();
Console.WriteLine("lamda loop:");
Console.WriteLine(watch.Elapsed.TotalMilliseconds);
Console.ReadLine();
}
}
}
テスト結果:
code test:
for loop:
0.2467
while loop:
0.2666
foreach loop:
0.4867
lamda loop:
0.8728