-
Notifications
You must be signed in to change notification settings - Fork 286
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Small spanifications #667
Merged
Merged
Small spanifications #667
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs
Show resolved
Hide resolved
cheenamalhotra
added
the
NetFx 👈 NetCore
Issues that require porting from .NET Core to .NET Framework
label
Jul 28, 2020
cheenamalhotra
approved these changes
Aug 14, 2020
johnnypham
approved these changes
Aug 14, 2020
TrayanZapryanov
pushed a commit
to TrayanZapryanov/SqlClient
that referenced
this pull request
Aug 31, 2020
TrayanZapryanov
added a commit
to TrayanZapryanov/SqlClient
that referenced
this pull request
Aug 31, 2020
This reverts commit bc2faed.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Aug 26, 2022
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Nov 21, 2022
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Nov 21, 2022
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Nov 21, 2022
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 24, 2023
…to netfx. Replaced Thread.MemoryBarrier usage of netfx with Interlocked.MemoryBarrier.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 24, 2023
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 25, 2023
…#667 to netfx. Replaced Thread.MemoryBarrier usage of netfx with Interlocked.MemoryBarrier.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 25, 2023
…#667 to netfx. Replaced Thread.MemoryBarrier usage of netfx with Interlocked.MemoryBarrier.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 25, 2023
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Sep 25, 2023
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Oct 25, 2023
…#667 to netfx. Replaced Thread.MemoryBarrier usage of netfx with Interlocked.MemoryBarrier.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Oct 25, 2023
…#667 to netfx. Replaced Thread.MemoryBarrier usage of netfx with Interlocked.MemoryBarrier.
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Oct 25, 2023
panoskj
added a commit
to panoskj/SqlClient
that referenced
this pull request
Oct 25, 2023
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Two pretty small changes.
The use of a shared temp array in some places was bothering me so I've replaced it with a const sized stack allocated span that the jit will simply allocate as part of the stack frame and then work entirely on locals. This should allow better codegen and referential locality.
The presence of multiple ways of writing an int to an array was wasteful. The most efficient way to do this is to use the netcore BitConverter.TryWriteByte method which uses MemoryMarshal to do safe il level tricks to write all 4 bytes in one. If that isn't present (netstandard, netfx) then do it using const offsets so the codegen can reorder or pipeline them efficiently.
Measuring a real-world impact of either of these in the context of the entire library is impossible. These are opinionated changes based on good performance practice picked up from work in corefx and I believe they improve the code quality overall.