Exemplo n.º 1
0
        public byte[] SerializeAvro()
        {
            byte[] result = null;

            var avroEvent = new Avro.TestEvent
            {
                id        = _event.Id.ToByteArray(),
                name      = _event.Name,
                timeStamp = _event.TimeStamp.ToUnixTimeMilliseconds(),
                x         = _event.X,
                y         = _event.Y,
                z         = _event.Z
            };

            using (var stream = new MemoryStream())
            {
                avroSerializer.Write(avroEvent, new BinaryEncoder(stream));
                return(stream.ToArray());
            }
        }
Exemplo n.º 2
0
        public void CreateTestData()
        {
            RuntimeTypeModel.Default.Add(typeof(DateTimeOffset), false).SetSurrogate(typeof(DateTimeOffsetSurrogate));

            JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            var @event = new TestEvent(Guid.NewGuid(), RandomString(5), random.NextDouble(), random.NextDouble(), random.NextDouble(), DateTimeOffset.Now);

            _event = @event;

            using (var stream = new MemoryStream())
            {
                Serializer.Serialize(stream, @event);
                ProtoSerializedData = stream.ToArray();
            }

            var jilJsonString = JSON.Serialize(@event);

            JilSerializedData = Encoding.UTF8.GetBytes(jilJsonString);
            var protoMessage = new Testevents.Protobuf.TestEvent
            {
                Id        = ByteString.CopyFrom(@event.Id.ToByteArray()),
                Name      = @event.Name,
                X         = @event.X,
                Y         = @event.Y,
                Z         = @event.Z,
                TimeStamp = Timestamp.FromDateTimeOffset(@event.TimeStamp),
            };

            GProtoSerialziedData = SerializeGProto(protoMessage);

            var msgPackResult = MessagePackSerializer.Serialize(@event);

            MsgPackData = msgPackResult;

            var msgPackKeyString = new TestEventMessagePackNoKeys
            {
                Id        = @event.Id,
                Name      = @event.Name,
                X         = @event.X,
                Y         = @event.Y,
                Z         = @event.Z,
                TimeStamp = @event.TimeStamp
            };

            _event2 = msgPackKeyString;
            var msgPackStringKeysResult = MessagePackSerializer.Serialize(msgPackKeyString);

            MsgPackDataIntKeys = msgPackStringKeysResult;

            var newtonJsonString = JsonConvert.SerializeObject(@event);

            NewtonsoftData = Encoding.UTF8.GetBytes(newtonJsonString);

            var avroEvent = new Avro.TestEvent
            {
                id        = @event.Id.ToByteArray(),
                name      = @event.Name,
                timeStamp = @event.TimeStamp.ToUnixTimeMilliseconds(),
                x         = @event.X,
                y         = @event.Y,
                z         = @event.Z
            };

            using (var stream = new MemoryStream())
            {
                avroSerializer.Write(avroEvent, new BinaryEncoder(stream));
                AvroData = stream.ToArray();
            }

            Utf8JsonData = Utf8Json.JsonSerializer.Serialize(@event, StandardResolver.CamelCase);
            spreadsData  = Spreads.Serialization.Utf8Json.JsonSerializer.Serialize(@event,
                                                                                   Spreads.Serialization.Utf8Json.Resolvers.StandardResolver.CamelCase);
            zeroFormatterData = ZeroFormatterSerializer.Serialize(@event);
            SystemTextData    = System.Text.Json.Serialization.JsonSerializer.ToUtf8Bytes(@event);

            var output    = new OutputBuffer();
            var writer    = new CompactBinaryWriter <OutputBuffer>(output);
            var bondEvent = new Bond.TestEvent
            {
                id   = @event.Id.ToByteArray(),
                name = @event.Name,
                x    = @event.X,
                y    = @event.Y,
                z    = @event.Z,
                date = @event.TimeStamp.ToUnixTimeMilliseconds()
            };

            Bond.Serialize.To(writer, bondEvent);
            bondData = output.Data.ToArray();

            /*Console.WriteLine($"Size of jil object {JilSerializedData.First().Length}");
             * Console.WriteLine($"Size of protobuf-net object {ProtoSerializedData.First().Length}");
             * Console.WriteLine($"Size of gproto object {GProtoSerialziedData.First().Length}");
             * Console.WriteLine($"Size of msgPack object {MsgPackData.First().Length}");
             * Console.WriteLine($"Size of msgPack object with int keys {MsgPackDataIntKeys.First().Length}");
             * Console.WriteLine($"Size of avro data {AvroData.First().Length}");
             * Console.WriteLine($"Size of newtonsoft object {NewtonsoftData.First().Length}");
             * Console.WriteLine($"Size of utf8json object {Utf8JsonData.First().Length}");
             * Console.WriteLine($"Size of zeroformatter object {zeroFormatterData.First().Length}");*/
        }