Program.cs
48 lines
| 1.2 KiB
| text/x-csharp
|
CSharpLexer
/ MonoPlay / Program.cs
|
|
r93 | using System; | ||
| using Implab.Diagnostics; | ||||
| using Implab.Parallels; | ||||
| using Implab; | ||||
|
|
r103 | using System.Collections.Generic; | ||
| using System.Collections.Concurrent; | ||||
|
|
r93 | |||
| namespace MonoPlay { | ||||
| class MainClass { | ||||
| public static void Main(string[] args) { | ||||
|
|
r94 | if (args == null) | ||
| throw new ArgumentNullException("args"); | ||||
|
|
r103 | var q1 = new MTQueue<int>(); | ||
| var q2 = new ConcurrentQueue<int>(); | ||||
| const int count = 10000000; | ||||
| var t1 = Environment.TickCount; | ||||
|
|
r93 | |||
|
|
r103 | for (var i = 0; i < count; i++) | ||
| q1.Enqueue(i); | ||||
|
|
r93 | |||
|
|
r103 | var t2 = Environment.TickCount; | ||
| Console.WriteLine("MTQueue: {0} ms", t2 - t1); | ||||
| t1 = Environment.TickCount; | ||||
|
|
r93 | |||
|
|
r103 | for (var i = 0; i < count; i++) | ||
| q2.Enqueue(i); | ||||
| t2 = Environment.TickCount; | ||||
| Console.WriteLine("LinkedList: {0} ms", t2 - t1); | ||||
| q2 = new ConcurrentQueue<int>(); | ||||
|
|
r93 | |||
|
|
r103 | t1 = Environment.TickCount; | ||
| for (var i = 0; i < count; i++) | ||||
| lock (q2) | ||||
| q2.Enqueue(i); | ||||
| t2 = Environment.TickCount; | ||||
| Console.WriteLine("LinkedList+Lock: {0} ms", t2 - t1); | ||||
|
|
r93 | |||
| } | ||||
| } | ||||
| } | ||||
