示例#1
0
        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);
        }