dadhi / dadhi/ImTools

Fast mutable non-concurrent HashMap

Open
#57 1 comment 0 reactions 1 assignee Claimed by @dadhi View on GitHub
enhancement
Dominant language
C#
Stars
251
Forks
11
PR merge metrics
No merged PRs in 30d

Description

I want a fast, configurable for the small sizes and less-allocating variant of HashMap in comparison with Dictionary and [DictionarySlim](https://github.com/dotnet/corefxlab/blob/archive/src/Microsoft.Experimental.Collections/Microsoft/Collections/Extensions/DictionarySlim.cs).

Alternative implementation to look for and compare:

- https://github.com/Wsm2110/Faster.Map
- https://github.com/matthewcrews/FastDictionaryTest

Tasks:

- [X] Implementation, tests and documentation
- [x] Battle test in [FastExpressionCompiler](https://github.com/dadhi/FastExpressionCompiler)
- [ ] Benchmarks in readme
- [x] 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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.