Create benchmark for Core.RemoveObjectFromList() implementation#476
Create benchmark for Core.RemoveObjectFromList() implementation#476jozefizso wants to merge 3 commits into
Core.RemoveObjectFromList() implementation#476Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dbea2cffb4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
``` dotnet run -f net8.0 -c Release -- all ```
Ensures the NetOffice Benchmarks project can be built. We are not running benchmarks are take too long to finish.
2e0a960 to
e0820de
Compare
|
Benchmark concern: |
|
Benchmark concern: |
|
Benchmark concern: the mixed-operation benchmark does not run equivalent workloads for all variants. The |
|
Benchmark concern: |
|
Benchmark concern: the benchmark currently mixes add cost and remove cost in the same measured method. If the goal is to evaluate |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e0820de55e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| int key = obj.GetHashCode(); | ||
| _globalObjectList[key] = obj; |
There was a problem hiding this comment.
Key dictionary variants by the object, not its hash code
When two distinct COM wrappers return the same GetHashCode() value, this dictionary variant overwrites the first entry and later removes by hash alone; the concurrent variant uses the same pattern. GetHashCode() is not a unique key, and the real COMObject implementation delegates to base.GetHashCode() in Source/NetOffice/COMObject.cs, so collisions are possible even though MockCOMObject makes them unlikely. This makes the benchmark compare a collection that can drop proxies under collision inputs rather than preserving the current list semantics.
Useful? React with 👍 / 👎.
Implements #448