Skip to content

Commit

Permalink
Parallel deserialize
Browse files Browse the repository at this point in the history
  • Loading branch information
benaadams committed Dec 10, 2023
1 parent 74f5062 commit 94b08e3
Showing 1 changed file with 14 additions and 16 deletions.
30 changes: 14 additions & 16 deletions src/Nethermind/Nethermind.JsonRpc/JsonRpcService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -270,13 +270,12 @@ private void LogRequest(string methodName, JsonElement providedParameters, Param
{
try
{
ArrayPoolList<object> executionParameters = new ArrayPoolList<object>(expectedParameters.Length + missingParamsCount);
int i = 0;
foreach (JsonElement providedParameter in providedParameters.EnumerateArray())
object[] executionParameters = new object[expectedParameters.Length + missingParamsCount];
Parallel.For(0, expectedParameters.Length, (int i) =>
{
JsonElement providedParameter = providedParameters[i];
ParameterInfo expectedParameter = expectedParameters[i];
i++;

Type paramType = expectedParameter.ParameterType;
if (paramType.IsByRef)
{
Expand All @@ -287,13 +286,13 @@ private void LogRequest(string methodName, JsonElement providedParameters, Param
{
if (providedParameter.ValueKind == JsonValueKind.Null && IsNullableParameter(expectedParameter))
{
executionParameters.Add(null);
// Already null
}
else
{
executionParameters.Add(Type.Missing);
executionParameters[i] = Type.Missing;
}
continue;
return;
}
object? executionParam;
Expand Down Expand Up @@ -327,18 +326,17 @@ private void LogRequest(string methodName, JsonElement providedParameters, Param
}
}
executionParameters.Add(executionParam);
}
executionParameters[i] = executionParam;
});

for (i = 0; i < missingParamsCount; i++)
int i = expectedParameters.Length;
int end = i + missingParamsCount;
for (; i < end; i++)
{
executionParameters.Add(Type.Missing);
executionParameters[i] = Type.Missing;
}

object[] returnArray = GC.AllocateUninitializedArray<object>(executionParameters.Count);
executionParameters.CopyTo(returnArray, 0);
executionParameters.Dispose();
return returnArray;
return executionParameters;
}
catch (Exception e)
{
Expand Down

0 comments on commit 94b08e3

Please sign in to comment.