private void Enqueue(ITransactionalQueue <XDoc> queue, int n, ManualResetEvent trigger) { trigger.WaitOne(); for (var j = 0; j < n; j++) { queue.Enqueue(new XDoc("test") .Attr("id", j) .Elem("foo", "bar") .Start("baz") .Attr("meta", "true") .Value("dsfdsssssssssssssssssssssssssssssfdfsfsfsfsfsfsfd") .End() .Elem("id", StringUtil.CreateAlphaNumericKey(16))); } }
private void Perf_test_single_thread_put_peek_and_take(ITransactionalQueue <XDoc> queue) { long totalEnqueue = 0; long totalDequeue = 0; var n = 20000; var m = 4; for (var k = 0; k < m; k++) { var items = new List <XDoc>(); for (var i = 0; i < n; i++) { items.Add(new XDoc("test") .Attr("id", i) .Elem("foo", "bar") .Start("baz") .Attr("meta", "true") .Value("dsfdsssssssssssssssssssssssssssssfdfsfsfsfsfsfsfd") .End() .Start("id", StringUtil.CreateAlphaNumericKey(16))); } var stopwatch = Stopwatch.StartNew(); foreach (var itm in items) { queue.Enqueue(itm); } Assert.AreEqual(n, queue.Count); stopwatch.Stop(); totalEnqueue += stopwatch.ElapsedMilliseconds; var j = 0; stopwatch = Stopwatch.StartNew(); var v = queue.Dequeue(); while (v != null) { Assert.IsTrue(queue.CommitDequeue(v.Id)); j++; v = queue.Dequeue(); } stopwatch.Stop(); totalDequeue += stopwatch.ElapsedMilliseconds; Assert.AreEqual(n, j); Assert.AreEqual(0, queue.Count); } Console.WriteLine("Enqueue: {0:0,000}/s", n * m * 1000 / totalEnqueue); Console.WriteLine("Dequeue: {0:0,000}/s", n * m * 1000 / totalDequeue); }
private void Perf_test_single_thread_put_peek_and_take(ITransactionalQueue<XDoc> queue) { long totalEnqueue = 0; long totalDequeue = 0; var n = 20000; var m = 4; for(var k = 0; k < m; k++) { var items = new List<XDoc>(); for(var i = 0; i < n; i++) { items.Add(new XDoc("test") .Attr("id", i) .Elem("foo", "bar") .Start("baz") .Attr("meta", "true") .Value("dsfdsssssssssssssssssssssssssssssfdfsfsfsfsfsfsfd") .End() .Start("id", StringUtil.CreateAlphaNumericKey(16))); } var stopwatch = Stopwatch.StartNew(); foreach(var itm in items) { queue.Enqueue(itm); } Assert.AreEqual(n, queue.Count); stopwatch.Stop(); totalEnqueue += stopwatch.ElapsedMilliseconds; var j = 0; stopwatch = Stopwatch.StartNew(); var v = queue.Dequeue(); while(v != null) { Assert.IsTrue(queue.CommitDequeue(v.Id)); j++; v = queue.Dequeue(); } stopwatch.Stop(); totalDequeue += stopwatch.ElapsedMilliseconds; Assert.AreEqual(n, j); Assert.AreEqual(0, queue.Count); } Console.WriteLine("Enqueue: {0:0,000}/s", n * m * 1000 / totalEnqueue); Console.WriteLine("Dequeue: {0:0,000}/s", n * m * 1000 / totalDequeue); }
public void Enqueue(XDoc meta) { _persistentQueue.Enqueue(meta); _poll = true; }
private void Enqueue(ITransactionalQueue<XDoc> queue, int n, ManualResetEvent trigger) { trigger.WaitOne(); for(var j = 0; j < n; j++) { queue.Enqueue(new XDoc("test") .Attr("id", j) .Elem("foo", "bar") .Start("baz") .Attr("meta", "true") .Value("dsfdsssssssssssssssssssssssssssssfdfsfsfsfsfsfsfd") .End() .Elem("id", StringUtil.CreateAlphaNumericKey(16))); } }