Dictionary benchmarks - #372
Open
mregen wants to merge 33 commits into
Open
Conversation
Bumps [BenchmarkDotNet](https://github.com/dotnet/BenchmarkDotNet) from 0.13.12 to 0.14.0. - [Release notes](https://github.com/dotnet/BenchmarkDotNet/releases) - [Commits](dotnet/BenchmarkDotNet@v0.13.12...v0.14.0) --- updated-dependencies: - dependency-name: BenchmarkDotNet dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…-0.14.0' into dictbenchmarks
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #372 +/- ##
==========================================
+ Coverage 54.91% 54.95% +0.04%
==========================================
Files 349 349
Lines 66506 66507 +1
Branches 13640 13640
==========================================
+ Hits 36521 36552 +31
+ Misses 26001 25985 -16
+ Partials 3984 3970 -14 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or 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
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.
Proposed changes
Benchmarks to test impact of the different dictionary implementations
This pull request includes several changes to improve performance, add benchmarking capabilities, and refactor existing code. The most important changes include adding BenchmarkDotNet to multiple test projects, refactoring session management methods, and updating the
HiResUtcNowTickCountmethod.Benchmarking Capabilities:
Tests/Opc.Ua.Client.ComplexTypes.Tests/Opc.Ua.Client.ComplexTypes.Tests.csproj,Tests/Opc.Ua.Client.Tests/Opc.Ua.Client.Tests.csproj,Tests/Opc.Ua.Configuration.Tests/Opc.Ua.Configuration.Tests.csproj,Tests/Opc.Ua.Core.Tests/Opc.Ua.Core.Tests.csproj,Tests/Opc.Ua.Gds.Tests/Opc.Ua.Gds.Tests.csproj,Tests/Opc.Ua.PubSub.Tests/Opc.Ua.PubSub.Tests.csproj,Tests/Opc.Ua.Security.Certificates.Tests/Opc.Ua.Security.Certificates.Tests.csproj,Tests/Opc.Ua.Server.Tests/Opc.Ua.Server.Tests.csproj) [1] [2] [3] [4] [5] [6] [7] [8]Performance Improvements:
SortedDictionarytoDictionaryin theAllocationclass to improve performance. (Stack/Opc.Ua.Core/Stack/Bindings/BufferManager.cs)Code Refactoring:
GetSessionCountmethod to simplify session count retrieval. (Libraries/Opc.Ua.Server/Server/StandardServer.cs,Libraries/Opc.Ua.Server/Session/SessionManager.cs) [1] [2]Method Updates:
HiResUtcNowTickCountmethod to improve readability and maintainability by storingstopWatch.ElapsedMillisecondsin a variable. (Tests/Opc.Ua.Core.Tests/Types/Utils/HiResClock.cs) [1] [2]Configuration Changes:
BenchmarksDefaultConfigto handle command line options and default configurations. (Tests/Common/Main.cs)