Exemple #1
0
 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)));
     }
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
 public void Enqueue(XDoc meta)
 {
     _persistentQueue.Enqueue(meta);
     _poll = true;
 }
Exemple #5
0
 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)));
     }
 }