public void Should_deliver_a_bunch_of_messages_to_server()
        {
            _channelToServer.Post(new TextMessage {
                Text = $"Hello {(-1).ToString(CultureInfo.InvariantCulture)}, server !"
            });
            Stopwatch watch = Stopwatch.StartNew();

            for (var i = 0; i < _count; i++)
            {
                _channelToServer.Post(new TextMessage {
                    Text = $"Hello {i.ToString(CultureInfo.InvariantCulture)}, server !"
                });
            }

            Console.WriteLine($"Pushed all messages in {watch.ElapsedMilliseconds}");
            GCStats before = GCStats.Snapshot();

            for (var times = 0; times < 60; times++)
            {
                if (_allMessagesReceived.WaitOne(TimeSpan.FromSeconds(1)))
                {
                    break;
                }

                Console.WriteLine($"{times:D3}: received {_serverReceived.ToString(CultureInfo.InvariantCulture)} messages.");
            }

            watch.Stop();
            GCStats diff = before.Diff();

            Console.WriteLine($"Finished in {watch.ElapsedMilliseconds:N3} ms, perf {_count * 1000.0 / watch.ElapsedMilliseconds:N} msg/sec");
            Console.WriteLine(diff);

            _serverReceived.Should().Be(_count + 1);
        }
Esempio n. 2
0
        //[DotMemoryUnit(SavingStrategy = )]
        public void PingPong()
        {
            Stopwatch watch = Stopwatch.StartNew();

            for (var i = 0; i < _count; i++)
            {
                _channelToServer.Post(new TextMessage {
                    Text = "Hello, server!"
                });
            }

            GCStats before = GCStats.Snapshot();

            for (var times = 0; times < 120; times++)
            {
                if (_testCompleted.WaitOne(TimeSpan.FromSeconds(1)))
                {
                    break;
                }

                Console.WriteLine($"{times:D3}: Server={_serverReceived.ToString(CultureInfo.InvariantCulture)} Client={_clientReceived.ToString(CultureInfo.InvariantCulture)} messages.");
            }

            watch.Stop();
            GCStats diff     = before.Diff();
            var     expected = new { Client = _clientReceived, Server = _serverReceived };
            var     actual   = new { Client = _count, Server = _count };

            Console.WriteLine(diff);
            expected.Should().BeEquivalentTo(actual);

            Console.WriteLine($"Finished in {watch.ElapsedMilliseconds:N3} ms, perf {_count * 1000.0 / watch.ElapsedMilliseconds:N} msg/sec");
        }
Esempio n. 3
0
        public GCStats Diff()
        {
            GCStats current = Snapshot();

            return(new GCStats(current._gen0 - _gen0, current._gen1 - _gen1, current._gen2 - _gen2));
        }