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

Add an additional length check to FrozenDictionary and FrozenSet #92546

Merged
merged 9 commits into from
Dec 11, 2023

Commits on Sep 23, 2023

  1. Add an additional length check to FrozenDictionary and FrozenSet

    On construction of the collection, we compute an unsigned long which is effectively 64 boolean flags, each representing the presence of a key string of a particular length (mod 64). When reading from the collection, we can exit early if the key being tested does not map to a bit which has been switched on by the original compuation. I believe this has similarities to how Bloom Filters work.
    This adds a relatively small cost on creation of the collection as small cost to each read operation. However it can speed up reads with certain data patterns especially when the difference between the maximum and minimum key length is large but there aren't many different lengths.
    andrewjsaid committed Sep 23, 2023
    Configuration menu
    Copy the full SHA
    189615d View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2023

  1. Configuration menu
    Copy the full SHA
    641929e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    39a44df View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2023

  1. Configuration menu
    Copy the full SHA
    18c48f8 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2023

  1. Revert false optimisation

    andrewjsaid committed Oct 22, 2023
    Configuration menu
    Copy the full SHA
    ad45927 View commit details
    Browse the repository at this point in the history
  2. Undo changing variable name

    It is probably an opinionated change which isn't right.
    andrewjsaid committed Oct 22, 2023
    Configuration menu
    Copy the full SHA
    96962d7 View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2023

  1. Configuration menu
    Copy the full SHA
    85e5715 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2023

  1. Configuration menu
    Copy the full SHA
    c339f28 View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2023

  1. Configuration menu
    Copy the full SHA
    8841016 View commit details
    Browse the repository at this point in the history