rsgc 1.1.0

Concurrent GC library for Rust
Documentation
using System;
using System.Diagnostics;

namespace dotnet
{
    public class Message
    {
        public byte[] Content;

        public Message(int size)
        {
            Content = new byte[size];
        }
    }

    public static class Program
    {
        const int windowSize = 200000;
        const int messageCount = 1000000;

        private static TimeSpan worst = TimeSpan.Zero;
        private static Stopwatch timer = new Stopwatch();
        private static Message[] buffer = new Message[windowSize];

        public static void Main(string[] args)
        {
            for (int i = 0; i < messageCount; i++)
            {
                PushMessage(i);
            }
            double worst_ms = (double)worst.Microseconds / 1000;
            Console.WriteLine($"Worst push time: {worst_ms}", worst_ms);
        }

        private static void PushMessage(int index)
        {
            timer.Restart();
            var message = CreateMessage();
            buffer[index % windowSize] = message;
            var elapsed = timer.Elapsed;
            if (elapsed > worst)
            {
                worst = elapsed;
            }
        }

        private static Message CreateMessage()
            => new Message(1024);
    }
}