public void ToBase64String_WhenUsingByteArray_ExpectDeserializeCorrect() { // Arrange var protocolBufferSerializer = new ProtocolBufferSerializer(false); var testEntity = TestHelper.GetDefaultTestEntity; // Act var stopwatch = Stopwatch.StartNew(); var serialized = protocolBufferSerializer.SerializeToByteArray(testEntity); var base64String = serialized.ToBase64String(); Console.WriteLine("\r\nBase 64 String:"); Console.WriteLine(base64String); var protobufBytes = base64String.DecodeBase64ToBytes(); var deserialized = protocolBufferSerializer.DeserializeFromByteArray <TestEntity>(protobufBytes); stopwatch.Stop(); // Assert this.WriteTimeElapsed(stopwatch); deserialized.AssertEqualsDefault(); }
public void SerializeToByteArray_WhenUsingByteArrayWithType_ExpectDeserializeCorrect() { // Arrange var protocolBufferSerializer = new ProtocolBufferSerializer(true); var testEntity = TestHelper.GetDefaultTestEntity; // Act var stopwatch = Stopwatch.StartNew(); var serializeToByteArray = protocolBufferSerializer.SerializeToByteArray(testEntity, typeof(TestEntity)); Console.WriteLine(JsonConvert.SerializeObject(serializeToByteArray)); var deserializeFromByteArray = protocolBufferSerializer.DeserializeFromByteArray(serializeToByteArray, typeof(TestEntity)); stopwatch.Stop(); // Assert this.WriteTimeElapsed(stopwatch); deserializeFromByteArray.AssertEqualsDefault(); }
public void ProtocolBuffersSerializerWithType_PerformanceTest() { const int Iterations = 100000; var testEntity = TestHelper.GetDefaultTestEntity; var type = typeof(TestEntity); var serializeToStream = new List <Stream>(); var serializeToByteArray = default(byte[]); var serializeToString = default(string); Console.WriteLine("Protocol Buffers Tests\r\n******"); var protocolBufferSerializer = new ProtocolBufferSerializer(true); /* Serialize Tests */ Console.WriteLine("SerializeToStream"); var sw = Stopwatch.StartNew(); for (var i = 0; i < Iterations; i++) { serializeToStream.Add(protocolBufferSerializer.SerializeToStream(testEntity, type)); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); Console.WriteLine("SerializeToByteArray"); sw.Restart(); for (var i = 0; i < Iterations; i++) { serializeToByteArray = protocolBufferSerializer.SerializeToByteArray(testEntity, type); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); Console.WriteLine("SerializeToString"); sw.Restart(); for (var i = 0; i < Iterations; i++) { serializeToString = protocolBufferSerializer.SerializeToString(testEntity, type); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); /* De-serialize Tests */ Console.WriteLine("DeserializeFromStream"); Console.WriteLine($"Length: {serializeToStream[0].Length}"); sw.Restart(); foreach (var stream in serializeToStream) { protocolBufferSerializer.DeserializeFromStream(stream, type); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); Console.WriteLine("DeserializeFromByteArray"); Console.WriteLine($"Length: {serializeToByteArray.Length}"); sw.Restart(); for (var i = 0; i < Iterations; i++) { protocolBufferSerializer.DeserializeFromByteArray(serializeToByteArray, type); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); Console.WriteLine("DeserializeFromString"); Console.WriteLine($"Length: {serializeToString.Length}"); sw.Restart(); for (var i = 0; i < Iterations; i++) { protocolBufferSerializer.DeserializeFromString(serializeToString, type); } sw.Stop(); Console.WriteLine($"Test time: {sw.ElapsedMilliseconds}ms\r\n-----"); Console.WriteLine($"\r\n***---TestEnded---***\r\n"); }