Skip to content

<bitset>: Investigate further performance improvements #3858

Description

Followup to #3838 which is adding a benchmark - thanks achabense!

  • Alex Guteniev (@AlexGuteniev) suggested using basic_string::resize_and_overwrite, creating an _Ugly version for unconditional use internally. (We generally avoid adding totally novel secret machinery to Standard classes as it can become a maintenance burden, but simply having _Ugly names to access Future Technology is easy and common.)
  • Alex Guteniev (@AlexGuteniev) also suggested investigating whether branchless codegen for assigning _Elem0 vs. _Elem1 would be superior. (Note: we cannot assume that their values are consecutive, they could be 'M' and 'E'.)
  • I suggest investigating SIMD, as this would seem to be highly amenable to vectorization.

Regardless of what's investigated, I recommend profiling each change in isolation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixedSomething works now, yay!performanceMust go faster

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions