From faf73e7798e0f8335593938900cf01a8d2813a43 Mon Sep 17 00:00:00 2001 From: Mikhail Mitrofaton Date: Thu, 3 Jul 2025 18:12:04 +0300 Subject: [PATCH] Faster cbor serialization with caching --- Example.Frontend/Example.Frontend.csproj | 2 +- Example.Frontend/Program.cs | 5 ++--- mROA.Cbor/CborSerializationToolkit.cs | 18 ++++++++++++++---- mROA.Cbor/mROA.Cbor.csproj | 10 +++++++++- mROA.Cbor/mroaLogo.png | Bin 0 -> 6431 bytes mROA.Codegen/mROA.Codegen.csproj | 7 ++++++- mROA.Codegen/mroaLogo.png | Bin 0 -> 6431 bytes .../ChannelInteractionModule.cs | 5 ----- mROA/mROA.csproj | 10 +++++++++- mROA/mroaLogo.png | Bin 0 -> 6431 bytes 10 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 mROA.Cbor/mroaLogo.png create mode 100644 mROA.Codegen/mroaLogo.png create mode 100644 mROA/mroaLogo.png diff --git a/Example.Frontend/Example.Frontend.csproj b/Example.Frontend/Example.Frontend.csproj index fdac1b1..0c1a745 100644 --- a/Example.Frontend/Example.Frontend.csproj +++ b/Example.Frontend/Example.Frontend.csproj @@ -14,7 +14,7 @@ - + JUST_LOAD diff --git a/Example.Frontend/Program.cs b/Example.Frontend/Program.cs index 3856ac5..6e91b88 100644 --- a/Example.Frontend/Program.cs +++ b/Example.Frontend/Program.cs @@ -131,7 +131,7 @@ class Program DemoCheck.TaskCancelation = true; #endif - const int iterations = 10; + const int iterations = 10000; var timer = Stopwatch.StartNew(); var x = 0; for (int i = 0; i < iterations; i++) @@ -147,7 +147,6 @@ class Program frontendBridge.Disconnect(); - DemoCheck.Show(); - Console.ReadKey(); + // DemoCheck.Show(); } } \ No newline at end of file diff --git a/mROA.Cbor/CborSerializationToolkit.cs b/mROA.Cbor/CborSerializationToolkit.cs index facd5c9..7943956 100644 --- a/mROA.Cbor/CborSerializationToolkit.cs +++ b/mROA.Cbor/CborSerializationToolkit.cs @@ -13,6 +13,7 @@ namespace mROA.Cbor { public class CborSerializationToolkit : IContextualSerializationToolKit { + private static Dictionary> _propertiesCache = new(); public static TimeSpan SerializationTime = TimeSpan.Zero; public byte[] Serialize(object objectToSerialize, IEndPointContext context) { @@ -231,7 +232,7 @@ namespace mROA.Cbor return; } - var properties = FilterProperties(type.GetProperties()); + var properties = GetAvalibleProperties(type); var values = properties.Select(property => property.GetValue(obj)).ToList(); WriteList(values, writer, context); } @@ -402,9 +403,7 @@ namespace mROA.Cbor private void FillObject(object obj, Type type, CborReader reader, IEndPointContext? context) { - var propertyInfos = type.GetProperties(); - var properties = FilterProperties(propertyInfos); - + var properties = GetAvalibleProperties(type); var length = reader.ReadStartArray(); try { @@ -441,5 +440,16 @@ namespace mROA.Cbor return finalProperties; } + + private List GetAvalibleProperties(Type type) + { + if (_propertiesCache.TryGetValue(type, out var properties)) + { + return properties; + } + var propertiesList = FilterProperties(type.GetProperties()); + _propertiesCache[type] = propertiesList; + return propertiesList; + } } } \ No newline at end of file diff --git a/mROA.Cbor/mROA.Cbor.csproj b/mROA.Cbor/mROA.Cbor.csproj index 1382ad8..ab207eb 100644 --- a/mROA.Cbor/mROA.Cbor.csproj +++ b/mROA.Cbor/mROA.Cbor.csproj @@ -4,8 +4,9 @@ netstandard2.1 enable true - 2.0.4 + 2.0.5 9 + mroaLogo.png @@ -24,4 +25,11 @@ + + + True + + + + diff --git a/mROA.Cbor/mroaLogo.png b/mROA.Cbor/mroaLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e70f53cd45958877144febd4cc50cdea589ddbf GIT binary patch literal 6431 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 Q&m!kfyPv8#8T`Xv02yCghX4Qo literal 0 HcmV?d00001 diff --git a/mROA.Codegen/mROA.Codegen.csproj b/mROA.Codegen/mROA.Codegen.csproj index 3eb3357..108ebcd 100644 --- a/mROA.Codegen/mROA.Codegen.csproj +++ b/mROA.Codegen/mROA.Codegen.csproj @@ -17,7 +17,8 @@ https://github.com/YaslePoy/mROA git True - 2.0.5 + 2.0.6 + mroaLogo.png @@ -30,6 +31,10 @@ + + True + + diff --git a/mROA.Codegen/mroaLogo.png b/mROA.Codegen/mroaLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e70f53cd45958877144febd4cc50cdea589ddbf GIT binary patch literal 6431 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 Q&m!kfyPv8#8T`Xv02yCghX4Qo literal 0 HcmV?d00001 diff --git a/mROA/Implementation/ChannelInteractionModule.cs b/mROA/Implementation/ChannelInteractionModule.cs index 5530a2b..5d71447 100644 --- a/mROA/Implementation/ChannelInteractionModule.cs +++ b/mROA/Implementation/ChannelInteractionModule.cs @@ -192,13 +192,10 @@ namespace mROA.Implementation public async Task SingleReceive(CancellationToken token = default) { - Console.WriteLine($"Receive start. Time: {profiler.ElapsedMilliseconds}ms"); var len = await ReadMessageLength(); - Console.WriteLine($"Received len {len}. Time: {profiler.ElapsedMilliseconds}ms"); var localSpan = _buffer[..len]; await _ioStream.ReadExactlyAsync(localSpan, cancellationToken: token); - Console.WriteLine($"Received. Time: {profiler.ElapsedMilliseconds}ms"); profiler.Restart(); var message = _serializationToolkit.Deserialize(localSpan, _context); MessageReceived(message); @@ -218,10 +215,8 @@ namespace mROA.Implementation var len = _serializationToolkit.Serialize(message, bodySpan.Span, _context); var header = BitConverter.GetBytes((ushort)len); header.CopyTo(_buffer); - Console.WriteLine($"Send start. Time: {profiler.ElapsedMilliseconds}ms"); var sendingSpan = _buffer[..(len + 2)]; await _ioStream.WriteAsync(sendingSpan, token); - Console.WriteLine($"Send. Time: {profiler.ElapsedMilliseconds}ms"); profiler.Restart(); } diff --git a/mROA/mROA.csproj b/mROA/mROA.csproj index 7397051..f2dbcf9 100644 --- a/mROA/mROA.csproj +++ b/mROA/mROA.csproj @@ -4,7 +4,7 @@ netstandard2.1 enable mROA - 2.0.6 + 2.0.7 YaslePoy Fast and easy RPC with contex https://github.com/YaslePoy/mROA @@ -14,6 +14,7 @@ 9 Debug;Release AnyCPU + mroaLogo.png @@ -29,4 +30,11 @@ + + + True + + + + diff --git a/mROA/mroaLogo.png b/mROA/mroaLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e70f53cd45958877144febd4cc50cdea589ddbf GIT binary patch literal 6431 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 Q&m!kfyPv8#8T`Xv02yCghX4Qo literal 0 HcmV?d00001