static MessageBenchmark() { var body = new Response("yess!"); Value = (new Message { TargetActivation = ActivationId.NewId(), TargetSilo = SiloAddress.New(IPEndPoint.Parse("210.50.4.44:40902"), 5423123), TargetGrain = GrainId.Create("sys.mygrain", "borken_thee_doggo"), BodyObject = body, InterfaceType = GrainInterfaceType.Create("imygrain"), SendingActivation = ActivationId.NewId(), SendingSilo = SiloAddress.New(IPEndPoint.Parse("10.50.4.44:40902"), 5423123), SendingGrain = GrainId.Create("sys.mygrain", "fluffy_g"), TraceContext = new TraceContext { ActivityId = Guid.NewGuid() }, Id = CorrelationId.GetNext() }).Headers; // var services = new ServiceCollection() .AddSerializer() .BuildServiceProvider(); Serializer = services.GetRequiredService <Serializer <Message.HeadersContainer> >(); var bytes = new byte[4000]; Session = services.GetRequiredService <SerializerSessionPool>().GetSession(); var writer = new SingleSegmentBuffer(bytes).CreateWriter(Session); Serializer.Serialize(Value, ref writer); Input = bytes; }
static MegaGraphBenchmark() { const int Size = 250_000; Value = new Dictionary <string, int>(Size); for (var i = 0; i < Size; i++) { Value[i.ToString(CultureInfo.InvariantCulture)] = i; } var services = new ServiceCollection() .AddSerializer() .BuildServiceProvider(); Serializer = services.GetRequiredService <Serializer <Dictionary <string, int> > >(); Session = services.GetRequiredService <SerializerSessionPool>().GetSession(); var pipe = new Pipe(new PipeOptions(readerScheduler: PipeScheduler.Inline, writerScheduler: PipeScheduler.Inline)); var writer = pipe.Writer.CreateWriter(Session); Serializer.Serialize(Value, ref writer); pipe.Writer.FlushAsync(); pipe.Reader.TryRead(out var result); Input = result.Buffer.ToArray(); }
private void ReturnSession(SerializerSession session) => _sessionPool.Return(session);