View difference between Paste ID: 5Qe22dmK and k3SWx9kF
SHOW: | | - or go back to the newest paste.
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using System.Diagnostics;
6
7
namespace Benchmarking
8
{
9
    static class Collections
10
    {
11
        public static void run()
12
        {
13
            Random rand = new Random();
14
            Stopwatch sw = new Stopwatch();
15
            Stack<int> stack = new Stack<int>();
16
            Queue<int> queue = new Queue<int>();
17
            List<int> list1 = new List<int>();
18
            List<int> list2 = new List<int>();
19
            LinkedList<int> linkedlist1 = new LinkedList<int>();
20
            LinkedList<int> linkedlist2 = new LinkedList<int>();
21
            int dummy;
22
23
24
            sw.Reset();
25
            Console.Write("{0,40}", "Pushing to Stack...");
26
            sw.Start();
27
            for (int i = 0; i < 100000; i++)
28
            {
29
                stack.Push(rand.Next());
30
            }
31
            sw.Stop();
32
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
33
            sw.Reset();
34
            Console.Write("{0,40}", "Poping from Stack...");
35
            sw.Start();
36
            for (int i = 0; i < 100000; i++)
37
            {
38
                dummy = stack.Pop();
39
                dummy++;
40
            }
41
            sw.Stop();
42
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
43
44
45
            sw.Reset();
46
            Console.Write("{0,40}", "Enqueue to Queue...");
47
            sw.Start();
48
            for (int i = 0; i < 100000; i++)
49
            {
50
                queue.Enqueue(rand.Next());
51
            }
52
            sw.Stop();
53
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
54
            sw.Reset();
55
            Console.Write("{0,40}", "Dequeue from Queue...");
56
            sw.Start();
57
            for (int i = 0; i < 100000; i++)
58
            {
59
                dummy = queue.Dequeue();
60
                dummy++;
61
            }
62
            sw.Stop();
63
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
64
65
66
            sw.Reset();
67
            Console.Write("{0,40}", "Insert to List at the front...");
68
            sw.Start();
69
            for (int i = 0; i < 100000; i++)
70
            {
71
                list1.Insert(0, rand.Next());
72
            }
73
            sw.Stop();
74
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
75
            sw.Reset();
76
            Console.Write("{0,40}", "RemoveAt from List at the front...");
77
            sw.Start();
78
            for (int i = 0; i < 100000; i++)
79
            {
80
                dummy = list1[0];
81
                list1.RemoveAt(0);
82
                dummy++;
83
            }
84
            sw.Stop();
85
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
86
87
88
            sw.Reset();
89
            Console.Write("{0,40}", "Add to List at the end...");
90
            sw.Start();
91
            for (int i = 0; i < 100000; i++)
92
            {
93
                list2.Add(rand.Next());
94
            }
95
            sw.Stop();
96
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
97
            sw.Reset();
98
            Console.Write("{0,40}", "RemoveAt from List at the end...");
99
            sw.Start();
100
            for (int i = 0; i < 100000; i++)
101
            {
102
                dummy = list2[list2.Count - 1];
103
                list2.RemoveAt(list2.Count - 1);
104
                dummy++;
105
            }
106
            sw.Stop();
107
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
108
109
110
            sw.Reset();
111
            Console.Write("{0,40}", "AddFirst to LinkedList...");
112
            sw.Start();
113
            for (int i = 0; i < 100000; i++)
114
            {
115
                linkedlist1.AddFirst(rand.Next());
116
            }
117
            sw.Stop();
118
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
119
            sw.Reset();
120
            Console.Write("{0,40}", "RemoveFirst from LinkedList...");
121
            sw.Start();
122
            for (int i = 0; i < 100000; i++)
123
            {
124-
                dummy = linkedlist1.First();
124+
                dummy = linkedlist1.First.Value;
125
                linkedlist1.RemoveFirst();
126
                dummy++;
127
            }
128
            sw.Stop();
129
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
130
131
132
            sw.Reset();
133
            Console.Write("{0,40}", "AddLast to LinkedList...");
134
            sw.Start();
135
            for (int i = 0; i < 100000; i++)
136
            {
137
                linkedlist2.AddLast(rand.Next());
138
            }
139
            sw.Stop();
140
            Console.WriteLine("  Time used: {0,9} ticks", sw.ElapsedTicks);
141
            sw.Reset();
142
            Console.Write("{0,40}", "RemoveLast from LinkedList...");
143
            sw.Start();
144
            for (int i = 0; i < 100000; i++)
145
            {
146-
                dummy = linkedlist2.Last();
146+
                dummy = linkedlist2.Last.Value;
147
                linkedlist2.RemoveLast();
148
                dummy++;
149
            }
150
            sw.Stop();
151
            Console.WriteLine("  Time used: {0,9} ticks\n", sw.ElapsedTicks);
152
        }
153
    }
154
}