Skip to content

Commit b7af033

Browse files
Henr1k80JamesNK
andauthored
Performance microoptimizations (#2558)
Co-authored-by: James Newton-King <[email protected]>
1 parent 6a3c977 commit b7af033

File tree

3 files changed

+6
-11
lines changed

3 files changed

+6
-11
lines changed

src/Grpc.AspNetCore.Server/Internal/GrpcProtocolHelpers.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
using System.Diagnostics.CodeAnalysis;
2020
using System.Globalization;
21+
using System.Runtime.InteropServices;
2122
using System.Security.Cryptography.X509Certificates;
2223
using System.Text;
2324
using Grpc.Core;
@@ -108,7 +109,7 @@ public static byte[] ParseBinaryHeader(string base64)
108109
switch (base64.Length % 4)
109110
{
110111
case 0:
111-
// base64 has the required padding
112+
// base64 has the required padding
112113
decodable = base64;
113114
break;
114115
case 2:
@@ -208,11 +209,8 @@ public static AuthContext CreateAuthContext(X509Certificate2 clientCertificate)
208209

209210
static void AddProperty(Dictionary<string, List<AuthProperty>> properties, string name, string value)
210211
{
211-
if (!properties.TryGetValue(name, out var values))
212-
{
213-
values = new List<AuthProperty>();
214-
properties[name] = values;
215-
}
212+
ref var values = ref CollectionsMarshal.GetValueRefOrAddDefault(properties, name, out _);
213+
values ??= [];
216214

217215
values.Add(AuthProperty.Create(name, Encoding.UTF8.GetBytes(value)));
218216
}

src/Grpc.AspNetCore.Web/Internal/ServerGrpcWebMode.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ namespace Grpc.AspNetCore.Web.Internal;
2020

2121
internal readonly record struct ServerGrpcWebContext(ServerGrpcWebMode Request, ServerGrpcWebMode Response);
2222

23-
internal enum ServerGrpcWebMode
23+
internal enum ServerGrpcWebMode : byte
2424
{
2525
None,
2626
GrpcWeb,

src/Shared/Server/MethodOptions.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,7 @@ private static void AddCompressionProviders(Dictionary<string, ICompressionProvi
158158
{
159159
foreach (var compressionProvider in compressionProviders)
160160
{
161-
if (!resolvedProviders.ContainsKey(compressionProvider.EncodingName))
162-
{
163-
resolvedProviders.Add(compressionProvider.EncodingName, compressionProvider);
164-
}
161+
resolvedProviders.TryAdd(compressionProvider.EncodingName, compressionProvider);
165162
}
166163
}
167164
}

0 commit comments

Comments
 (0)