Many times we need to check the performance of the our C# code. so following is the workaround with an example. ..
Most developers prefer to use a
foreach loop than for
loop because foreach is easier to use. This will however
prove to be costly when working with collections with a large amount of
data. Consider the below sample in which I am looping through the same
datatable using for and foreach. Also check
the time taken by each loop on Fig 1.0. static void Main(string[] args)
{
DataTable dt = PopulateData();
Stopwatch watch = new Stopwatch();
//For loop
watch.Start();
for (int count = 0; count < dt.Rows.Count; count++)
{
dt.Rows[count]["Name"] = "Modified in For";
}
watch.Stop();
Console.WriteLine("Time taken in For loop: {0}", watch.Elapsed.TotalSeconds);
watch.Reset();
//Foreach loop
watch.Start();
foreach (DataRow row in dt.Rows)
{
row["Name"] = "Modified in ForEach";
}
watch.Stop();
Console.WriteLine("Time taken in For Each loop: {0}", watch.Elapsed.TotalSeconds);
Console.ReadKey();
}
Fig 1.0
As you can see the
foreach loop is slow, it takes almost
double the amount of time as that of the for loop. This is
because in the foreach loop dt.Rows will
access all the rows in the datatable.
For bigger collections always use
for loop in case if
looping is required.
No comments:
Post a Comment