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