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

Fast mutable non-concurrent HashMap #57

Open
2 of 5 tasks
dadhi opened this issue Aug 2, 2023 · 1 comment
Open
2 of 5 tasks

Fast mutable non-concurrent HashMap #57

dadhi opened this issue Aug 2, 2023 · 1 comment
Assignees
Milestone

Comments

@dadhi
Copy link
Owner

dadhi commented Aug 2, 2023

I want a fast, configurable for the small sizes and less-allocating variant of HashMap in comparison with Dictionary and DictionarySlim.

Alternative implementation to look for and compare:

Tasks:

  • Implementation, tests and documentation
  • Battle test in FastExpressionCompiler
  • Benchmarks in readme
  • Establish a consistent naming across the other ImTools types, e.g. SmallMap vs FHashMap, EtcMap
  • Add the variant to keep an items on stack for the small map and progressively expand to the heap if needed. Ensure there is no "significant" performance degradation comparing to the full-on heap version

Results:

  • The new SmallMap hash table
@dadhi dadhi added this to the v4.1.0 milestone Aug 2, 2023
@dadhi dadhi self-assigned this Aug 2, 2023
@dadhi
Copy link
Owner Author

dadhi commented Aug 2, 2023

The work is done in the playground/Experiments project in the maps with the incremented names, last one at the moment is the FHashMap91.

dadhi added a commit that referenced this issue Aug 3, 2023
dadhi added a commit that referenced this issue Aug 3, 2023
dadhi added a commit that referenced this issue Aug 3, 2023
dadhi added a commit that referenced this issue Aug 3, 2023
dadhi added a commit that referenced this issue Aug 10, 2023
@dadhi dadhi modified the milestones: v4.1.0, v5.0.0 Jan 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant