Details
-
Improvement
-
Resolution: Fixed
-
Major
-
None
-
1
-
SDK1: GA and Priority List
Description
We are currently utilizing some performance improvements for Couchbase SDK 3.0 in .NET Core 2.1 surrounding Span<T> and Memory<T> by including a "netcoreapp2.1" target and using conditional compilation directives.
These APIs are now built into .NET Standard 2.1. These APIs should be used in .NET Core 3.0 without changes because NuGet will choose the "netcoreapp2.1" target. However, it would be more correct, and more compatible with other implementations of .NET Standard such as Xamarin, to add a "netstandard2.1" target and adjust the conditional compilation directives to use the more performant APIs for this target as well.
https://github.com/couchbase/couchbase-net-client/blob/68720424095ef349a442d55dddfd6403f09ee143/src/Couchbase/Utils/StreamExtensions.cs#L11
https://github.com/couchbase/couchbase-net-client/blob/master/src/Couchbase/Core/IO/Connections/MultiplexingConnection.cs#L108
https://github.com/couchbase/couchbase-net-client/blob/6efda90d9e5050c75c746198e41da8aa2574881f/src/Couchbase/Utils/MemoryReaderStream.cs#L76
https://github.com/couchbase/couchbase-net-client/blob/e308481b130239c4ac70cccbb54e6e54e79a8c6c/src/Couchbase/Core/IO/Operations/OperationBuilder.cs#L166
https://github.com/couchbase/couchbase-net-client/blob/e308481b130239c4ac70cccbb54e6e54e79a8c6c/src/Couchbase/Core/IO/Transcoders/DefaultTranscoder.cs#L454