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.
Summary
This PR adds a benchmarking project to the solution so that performance gains during optimizations may be analyzed.
What existing problem does the pull request solve?
It is difficult to quantify the gains from applying performance optimizations without benchmarks.
Sample Output
Legend
Observations
Creating the QR code uses a lot of RAM, which triggers garbage collections more frequently. Minimizing the number of garbage collections through a more efficient QR code algorithm can significantly enhance the stability and performance of an ASP.NET Core application. By optimizing the QR code generation process, the application can manage memory better, reduce latency, and handle higher user loads with greater reliability, ultimately improving user experience and application scalability.
Similar benefits would be realized for other targets, such as blazor/webassembly.
Notes
This project targets .NET 8 so that any performance benefits are measured for a developer targeting the latest version of .NET. The compilation targets for the main project have not changed; however, the .NET 8 SDK was added to the CI workflows so that building the solution does not cause a build error.