You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem?
The performance of the binary reader and writer classes is worse than the .NET alternative BinaryReader / BinaryWriter. The reason is that it doesn't benefit from hardware acceleration features and it creates several buffers (requiring allocation).
Describe the solution you'd like
Create a performance test to compare the performance and improve by:
Having a re-usable byte array buffer
Using stackalloc and Span when possible
Use the class BinaryPrimitives to do the little and big endianness conversion. This class from the .NET library features hardware acceleration features.
Describe alternatives you've considered
Remove the class, but we need it as BinaryReader only supports little-endian decoding.
Additional context
These classes impact the performance of most user code.
The BinaryReader class has additional performance optimizations detecting if the Stream is MemoryStream and then accessing directly to the byte array with Spans. For now we should skip this kind of optimizations. We can consider them in the future inside DataStream.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem?
The performance of the binary reader and writer classes is worse than the .NET alternative
BinaryReader
/BinaryWriter
. The reason is that it doesn't benefit from hardware acceleration features and it creates several buffers (requiring allocation).Describe the solution you'd like
Create a performance test to compare the performance and improve by:
stackalloc
andSpan
when possibleBinaryPrimitives
to do the little and big endianness conversion. This class from the .NET library features hardware acceleration features.Describe alternatives you've considered
Remove the class, but we need it as
BinaryReader
only supports little-endian decoding.Additional context
These classes impact the performance of most user code.
The
BinaryReader
class has additional performance optimizations detecting if theStream
isMemoryStream
and then accessing directly to the byte array withSpan
s. For now we should skip this kind of optimizations. We can consider them in the future insideDataStream
.The text was updated successfully, but these errors were encountered: