public byte[] SerializeBond() { byte[] result = null; 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); result = output.Data.ToArray(); return(result); }
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}");*/ }