protected void Page_Load(object sender, EventArgs e) { var result = new List<ForLoopResourcesResult>(); var theData = new List<string>(); for (int i = 0; i < 9999999; i++) theData.Add("Item" + i); int MaxLoop = 5; var S1 = new ForLoopResourcesResult() { Description = "Storing the count in a variable", Duration = 0, MemoryUsage=0 }; result.Add(S1); for (int Loop = 0; Loop < MaxLoop; Loop++) { using (var tOp = new TimeOperation()) { long MemoryStart = System.GC.GetTotalMemory(false); var Count = theData.Count; for (int i = 0; i < Count; i++) { string s = theData[i]; } S1.Duration += tOp.Stop(); long MemoryEnd = System.GC.GetTotalMemory(false); S1.MemoryUsage += MemoryEnd - MemoryStart; } } System.Threading.Thread.Sleep(5000); System.GC.Collect(); System.Threading.Thread.Sleep(5000); var S2 = new ForLoopResourcesResult() { Description = "Normal For Loop", Duration = 0, MemoryUsage=0 }; result.Add(S2); for (int Loop = 0; Loop < MaxLoop; Loop++) { using (var tOp = new TimeOperation()) { long MemoryStart = System.GC.GetTotalMemory(false); for (int i = 0; i < theData.Count; i++) { string s = theData[i]; } S2.Duration += tOp.Stop(); long MemoryEnd = System.GC.GetTotalMemory(false); S1.MemoryUsage += MemoryEnd - MemoryStart; } } System.Threading.Thread.Sleep(5000); System.GC.Collect(); System.Threading.Thread.Sleep(5000); var S3 = new ForLoopResourcesResult() { Description = "Using List.ForEach", Duration = 0, MemoryUsage=0 }; result.Add(S3); for (int Loop = 0; Loop < MaxLoop; Loop++) { using (var tOp = new TimeOperation()) { long MemoryStart = System.GC.GetTotalMemory(false); theData.ForEach(delegate(string str) { string s = str; }); long MemoryEnd = System.GC.GetTotalMemory(false); S1.MemoryUsage += MemoryEnd - MemoryStart; S3.Duration += tOp.Stop(); } } System.Threading.Thread.Sleep(5000); System.GC.Collect(); result.ForEach(delegate(ForLoopResourcesResult obj) { obj.Duration = obj.Duration / MaxLoop; }); GV.DataSource = result; GV.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { var oArrayList = new ArrayList(); var oList = new List<int>(); var oHashTable = new Hashtable(); var oDictionary = new Dictionary<int, int>(); var results = new List<ComparisonObj>(); /* * Create a new Comparison Object * a Comparison object stores the various parameters which we want to monitor */ var coArrayList = new ComparisonObj() { Description = "ArrayList"}; results.Add(coArrayList); //ArrayList for (int Loop = 0; Loop < MaxLoops; Loop++) { oArrayList = new ArrayList(); //Insert items to the array List using (var tOps = new TimeOperation()) { for (int i = 0; i < MaxElements; i++) oArrayList.Add(i); coArrayList.Duration_Insert += tOps.Stop(); } //Iterate thru all items in the array list using (var tOps = new TimeOperation()) { foreach (object o in oArrayList) { int i = (int)o; } coArrayList.Duration_Iterate += tOps.Stop(); } //Seek the middle number in the arraylist using (var tOps = new TimeOperation()) { oArrayList.Contains(MaxElements / 2); coArrayList.Duration_Search += tOps.Stop(); } oArrayList.Clear(); } System.Threading.Thread.Sleep(5000); var coList = new ComparisonObj() { Description = "List"}; results.Add(coList); for (int Loop = 0; Loop < MaxLoops; Loop++) { oList = new List<int>(); using (var tOps = new TimeOperation()) { for (int i = 0; i < MaxElements; i++) oList.Add(i); coList.Duration_Insert += tOps.Stop(); } using (var tOps = new TimeOperation()) { foreach (var o in oList) { int i = o; } coList.Duration_Iterate += tOps.Stop(); } using (var tOps = new TimeOperation()) { oList.Contains(MaxElements / 2); coList.Duration_Search += tOps.Stop(); } oList.Clear(); } System.Threading.Thread.Sleep(5000); var coHashTable = new ComparisonObj() { Description = "HashTable" }; results.Add(coHashTable); for (int Loop = 0; Loop < MaxLoops; Loop++) { oHashTable = new Hashtable(); using (var tOps = new TimeOperation()) { for (int i = 0; i < MaxElements; i++) oHashTable.Add(i, i); coHashTable.Duration_Insert += tOps.Stop(); } using (var tOps = new TimeOperation()) { foreach (object o in oHashTable.Keys) { int i = (int)oHashTable[o]; } coHashTable.Duration_Iterate += tOps.Stop(); } using (var tOps = new TimeOperation()) { oHashTable.ContainsKey(MaxElements / 2); coHashTable.Duration_Search += tOps.Stop(); } oHashTable.Clear(); } System.Threading.Thread.Sleep(5000); var coDictionary = new ComparisonObj() { Description = "Dictionary" }; results.Add(coDictionary); for (int Loop = 0; Loop < MaxLoops; Loop++) { oDictionary = new Dictionary<int, int>(); using (var tOps = new TimeOperation()) { for (int i = 0; i < MaxElements; i++) oDictionary.Add(i, i); coDictionary.Duration_Insert += tOps.Stop(); } using (var tOps = new TimeOperation()) { foreach (var o in oDictionary.Keys) { int i = (int)oDictionary[o]; } coDictionary.Duration_Iterate += tOps.Stop(); } using (var tOps = new TimeOperation()) { oDictionary.ContainsKey(MaxElements / 2); coDictionary.Duration_Search += tOps.Stop(); } oHashTable.Clear(); } System.Threading.Thread.Sleep(5000); foreach (var o in results) { o.Duration_Insert = o.Duration_Insert / MaxLoops; o.Duration_Iterate = o.Duration_Iterate / MaxLoops; o.Duration_Search = o.Duration_Search / MaxLoops; } GV.DataSource = results; GV.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { var results = new List<StringBuilderResults>(); int MaxLoops = 5; int MaxIterations = 10000; var r1 = new StringBuilderResults() { Description = "StringBuilder", MemoryUsage = 0, Duration = 0, TotalExceptions = 0 }; results.Add(r1); for (int Loop = 0; Loop < MaxLoops; Loop++) { long memoryStart = System.GC.GetTotalMemory(false); using (var tOp = new TimeOperation()) { try { var sb = new StringBuilder(); for (int i = 0; i < MaxIterations; i++) { sb.Append(i.ToString()); } } catch (Exception ex) { r1.TotalExceptions++; r1.AddException(ex); } r1.Duration += tOp.Stop(); } long memoryEnd = System.GC.GetTotalMemory(false); r1.MemoryUsage += memoryEnd - memoryStart; } System.Threading.Thread.Sleep(5000); System.GC.Collect(); System.Threading.Thread.Sleep(5000); var r2 = new StringBuilderResults() { Description = "String Concat", MemoryUsage = 0, Duration = 0, TotalExceptions = 0 }; results.Add(r2); for (int Loop = 0; Loop < MaxLoops; Loop++) { long memoryStart = System.GC.GetTotalMemory(false); using (var tOp = new TimeOperation()) { try { var sb = ""; for (int i = 0; i < MaxIterations; i++) { sb = sb + i.ToString(); } } catch (Exception ex) { r2.TotalExceptions++; r2.AddException(ex); } r2.Duration += tOp.Stop(); } long memoryEnd = System.GC.GetTotalMemory(false); r2.MemoryUsage += memoryEnd - memoryStart; } System.Threading.Thread.Sleep(5000); System.GC.Collect(); results.ForEach(delegate(StringBuilderResults r) { r.Duration = r.Duration / MaxLoops; r.MemoryUsage = r.MemoryUsage / MaxLoops; }); GV.DataSource = results; GV.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { var results = new List<DisposingResourcesResult>(); var yDispose = new DisposingResourcesResult() { Description = "Disposing objects", MemoryUsage=0, Duration=0, TotalExceptions=0 }; results.Add(yDispose); var cmd = new SqlCommand(); cmd.CommandText = "select * from Address"; int MaxLoops = 5; int MaxIterations = 100; for (int Loop = 0; Loop < MaxLoops; Loop++) { long memoryStart = System.GC.GetTotalMemory(false); using (var tOp = new TimeOperation()) { try { for (int i = 0; i < MaxIterations; i++) { using (var db = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"].ConnectionString)) { db.Open(); cmd.Connection = db; using (var r = cmd.ExecuteReader()) { while (r.Read()) { } } } } } catch (Exception ex) { yDispose.TotalExceptions++; yDispose.AddException(ex); } yDispose.Duration += tOp.Stop(); } long memoryEnd = System.GC.GetTotalMemory(false); yDispose.MemoryUsage += memoryEnd - memoryStart; } System.GC.Collect(); var nDispose = new DisposingResourcesResult() { Description = "NOT Disposing objects", MemoryUsage = 0, Duration = 0, TotalExceptions = 0 }; results.Add(nDispose); for (int Loop = 0; Loop < MaxLoops; Loop++) { long memoryStart = System.GC.GetTotalMemory(false); using (var tOp = new TimeOperation()) { for (int i = 0; i < MaxIterations; i++) { try { var db = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"].ConnectionString); db.Open(); cmd.Connection = db; using (var r = cmd.ExecuteReader()) { while (r.Read()) { } } } catch (Exception ex) { nDispose.TotalExceptions++; nDispose.AddException(ex); } } nDispose.Duration += tOp.Stop(); } long memoryEnd = System.GC.GetTotalMemory(false); nDispose.MemoryUsage += memoryEnd - memoryStart; } System.GC.Collect(); results.ForEach(delegate(DisposingResourcesResult r) { r.Duration = r.Duration / MaxLoops; r.MemoryUsage = r.MemoryUsage / MaxLoops; }); GV.DataSource = results; GV.DataBind(); }