Skip to content
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

Eliminate use of LINQ within GetVersion #524

Merged
merged 1 commit into from
May 14, 2024

Conversation

Shane32
Copy link
Contributor

@Shane32 Shane32 commented May 14, 2024

Minor performance tweak to eliminate allocations within GetVersion (assuming no exception is thrown).

@codebude codebude merged commit 283a458 into codebude:master May 14, 2024
3 checks passed
@codebude
Copy link
Owner

Do you plan any further performance optimizations? Otherwise I would release & push the current state as 1.5.2. All those performance optimization already done are worth a release :-)

@Shane32 Shane32 deleted the eliminate_linq_getversion branch May 14, 2024 18:17
@Shane32
Copy link
Contributor Author

Shane32 commented May 14, 2024

If I have time, I'd like to:

  • use some kind of ArrayPool buffer(s) for the codeword ECC blocks
  • make a custom BitArray that uses ArrayPool internally for two larger allocations which are internally freed
  • decide if there should be any changes (or bug fixes) for strings - see [WIP] Fix character encoding when EciMode is specified #514 - which I have not gone back to yet
  • review additionally targeting .NET Standard 2.1, as there would be native Span<> and ArrayPool support for older frameworks, I believe

I have nothing against releasing 1.5.2 at any time you wish -- the performance optimizations have no effect on the exposed API or its use, and any future performance enhancements will be minor in comparison.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants