Skip to content

Instantly share code, notes, and snippets.

@asduser
Last active June 5, 2016 20:34
Show Gist options
  • Save asduser/e3a5d8c3a1d2a1634b6d968d2906510b to your computer and use it in GitHub Desktop.
Save asduser/e3a5d8c3a1d2a1634b6d968d2906510b to your computer and use it in GitHub Desktop.
Comparing performance difference for Dictionary type & IList Collection type.
using System;
using System.Linq;
using System.Collections.Generic;
namespace Program {
public static void Man(string[] args) {
Random rnd = new Random();
Dictionary<string, long> dic = new Dictionary<string, long>() { };
var time1 = DateTime.Now;
for (var i = 0; i < 6000000; i++)
{
var number = rnd.Next(100);
dic.Add("User-" + i, number);
}
var result = dic.Where(p => p.Value > 95).Where(p=>p.Value > 96).Where(p=>p.Value>97).OrderByDescending(p=>p.Value);
var resultTime = DateTime.Now - time1;
Console.WriteLine(result.Count());
Console.WriteLine(String.Format("Time elapsed: {0}m {1}s {2}ms", resultTime.Minutes, resultTime.Seconds, resultTime.Milliseconds));
Random rnd2 = new Random();
List<TestUser> dic2 = new List<TestUser>();
var time2 = DateTime.Now;
for (var i = 0; i < 6000000; i++)
{
var number = rnd2.Next(100);
dic2.Add(new TestUser { Name = "User-" + i, Age = number });
}
var result2 = dic2.Where(p => p.Age > 95).Where(p => p.Age > 96).Where(p => p.Age > 97).OrderByDescending(p => p.Age);
var resultTime2 = DateTime.Now - time2;
Console.WriteLine(result2.Count());
Console.WriteLine(String.Format("Time elapsed: {0}m {1}s {2}ms", resultTime2.Minutes, resultTime2.Seconds, resultTime2.Milliseconds));
Console.ReadKey();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment