public void Invoke() { var graph = DataBlock.Filled(); var watch = new Stopwatch(); watch.Start(); Console.WriteLine("Initializing ProtoBuf.NET serialization test..."); var protobuf = new ProtocolBuffer.ProtocolBufferBinaryConverter <DataBlock>(); var length = protobuf.Convert(graph).Length; Console.WriteLine("Initialization time: " + watch.Elapsed); Console.WriteLine("MinSize of data: " + length); watch.Restart(); for (var i = 0; i < 10000; i++) { protobuf.Convert(graph); } Console.WriteLine("Serialization time: " + watch.Elapsed); watch.Restart(); Parallel.For(0, 10000, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (idx) => { protobuf.Convert(graph); }); Console.WriteLine("Parallel serialization time: " + watch.Elapsed); Console.WriteLine("Enigma serialization test completed"); }
public void WriteDynamicTravelTest() { var bytes = _context.Pack(DataBlock.Filled()); Assert.NotNull(bytes); Assert.True(bytes.Length > 0); var hex = "0x" + string.Join("", bytes.Select(b => b.ToString("X"))); Assert.NotNull(hex); var expected = BinarySerializationTestContext.GetFilledDataBlockHexString(); Assert.Equal(expected, hex); }
public static byte[] GetFilledDataBlockBlob() { var stream = new MemoryStream(); using (var buffer = new BinaryWriteBuffer(1024, stream)) { var visitor = new PackedDataWriteVisitor(buffer); var traveller = DataBlockHardCodedTraveller.Create(); traveller.Travel(visitor, DataBlock.Filled()); } var bytes = stream.ToArray(); return(bytes); }
public void ReadHardCodedTravelTest() { var bytes = BinarySerializationTestContext.GetFilledDataBlockBlob(); var stream = new MemoryStream(bytes); var visitor = new PackedDataReadVisitor(stream); var traveller = DataBlockHardCodedTraveller.Create(); var graph = new DataBlock(); traveller.Travel(visitor, graph); var expected = DataBlock.Filled(); graph.AssertEqualTo(expected); }
public void ReadDynamicTravelTest() { var bytes = BinarySerializationTestContext.GetFilledDataBlockBlob(); var stream = new MemoryStream(bytes); var visitor = new PackedDataReadVisitor(stream); var context = new DynamicTravellerContext(); var traveller = context.GetInstance <DataBlock>(); var graph = new DataBlock(); traveller.Travel(visitor, graph); var expected = DataBlock.Filled(); graph.AssertEqualTo(expected); }
public void Invoke() { var graph = DataBlock.Filled(); var watch = new Stopwatch(); watch.Start(); Console.WriteLine("Initializing enigma serialization test..."); long length; var serializer = new PackedDataSerializer <DataBlock>(); using (var stream = new MemoryStream()) { serializer.Serialize(stream, graph); length = stream.Length; } Console.WriteLine("Initialization time: " + watch.Elapsed); Console.WriteLine("MinSize of data: " + length); watch.Restart(); for (var i = 0; i < 10000; i++) { serializer.Serialize(new MemoryStream(), graph); } Console.WriteLine("Serialization time: " + watch.Elapsed); watch.Restart(); Parallel.For(0, 10000, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (idx) => { serializer.Serialize(new MemoryStream(), graph); }); Console.WriteLine("Parallel serialization time: " + watch.Elapsed); Console.WriteLine("Enigma serialization test completed"); }