Cześć,
stworzyłem sobie taki o to kod:
class Program
{
static void Main(string[] args)
{
var list0 = Generate();
var list1 = Generate();
var list2 = Generate();
var list3 = Generate();
var watch0 = new Stopwatch();
var watch1 = new Stopwatch();
var watch2 = new Stopwatch();
var watch3 = new Stopwatch();
watch0.Start();
for (var i = 0; i < 100000; i++)
{
list0[i] = list0[i] + "Changed";
}
watch0.Stop();
Console.WriteLine("Time0: {0}", watch0.Elapsed.TotalSeconds);
watch1.Start();
for (var i = 0; i < 100000; i++)
{
list1[i] = list1[i] + "Changed";
}
watch1.Stop();
Console.WriteLine("Time1: {0}", watch1.Elapsed.TotalSeconds);
watch2.Start();
for (var i = 0; i < 100000; i++)
{
list2[i] = list2[i] + "Changed";
}
watch2.Stop();
Console.WriteLine("Time2: {0}", watch2.Elapsed.TotalSeconds);
watch3.Start();
for (var i = 0; i < 100000; i++)
{
list3[i] = list3[i] + "Changed";
}
watch3.Stop();
Console.WriteLine("Time3: {0}", watch3.Elapsed.TotalSeconds);
Console.Read();
}
public static List<string> Generate()
{
var list = new List<string>();
for (int i = 0; i < 100000; i++)
{
list.Add(Guid.NewGuid().ToString());
}
return list;
}
}
Czasy:
Time0: 0.0505036
Time1: 0.0133944
Time2: 0.0253824
Time3: 0.0245541
Czemu te czasy się tak między sobą różnią?