static void TestDynamicTable() { long time = 0; Stopwatch watch = new Stopwatch(); Random r = new Random(); string fileContent = fileHeader; ImmutableDictionary <int, int> dynamicTable = ImmutableDictionary <int, int> .Empty; for (int i = 1; i <= 10; i++) { Console.WriteLine("Running dynamic table with " + i + " fields..."); for (int u = minUpdates; u <= updates; u *= 10) { int[] keys = new int[i]; for (int d = 0; d < i; d++) { keys[d] = r.Next(); dynamicTable = dynamicTable.Add(keys[d], r.Next(-100, 100)); } watch.Restart(); for (int j = 0; j < u; j++) { dynamicTable.Last(); } watch.Stop(); time += watch.ElapsedMilliseconds; fileContent += i + "," + u + "," + ((double)watch.ElapsedMilliseconds / updates) + "\n"; } Console.WriteLine("Done"); } if (!System.IO.Directory.Exists("Benchmark")) { System.IO.Directory.CreateDirectory("Benchmark"); } System.IO.File.WriteAllText("Benchmark\\benchmark_dynamic_table.csv", fileContent); }