1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-07 16:06:15 +00:00

Added small performance improvements in SystemTextJsonMessageAccessor

This commit is contained in:
JKorf 2024-07-16 15:54:11 +02:00
parent a85bfb4432
commit 02432e5109

View File

@ -242,6 +242,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
{ {
_stream?.Dispose(); _stream?.Dispose();
_stream = null; _stream = null;
_document?.Dispose();
_document = null; _document = null;
} }
@ -261,6 +262,14 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
try try
{ {
var firstByte = data.Span[0];
if (firstByte != 0x7b && firstByte != 0x5b)
{
// Value doesn't start with `{` or `[`, prevent deserialization attempt as it's slow
IsJson = false;
return new CallResult(new ServerError("Not a json value"));
}
_document = JsonDocument.Parse(data); _document = JsonDocument.Parse(data);
IsJson = true; IsJson = true;
return new CallResult(null); return new CallResult(null);
@ -289,6 +298,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
public override void Clear() public override void Clear()
{ {
_bytes = null; _bytes = null;
_document?.Dispose();
_document = null; _document = null;
} }
} }