Skip to content

💡 indexed_handler: RLE bitset alternative #375

@lukevalenty

Description

@lukevalenty

The current bitset implementation operator& performance and storage memory scales linearly with the number of callbacks.

An alternative RLE bitset implementation can provide better than linear scaling in both performance and memory.

The following guidelines should be followed to ensure efficient design:

  1. RLE bitset construction must be constexpr.
  2. Each RLE bitset struct must fit within a machine register or less. The struct itself should contain an offset into the shared RLE data table and a length.
  3. Storage for the RLE bitset must be allocated outside of the RLE bitset element itself. The base pointer of the RLE data table is known to the RLE bitset at compile time (passed as template parameter, for example.) Multiple RLE bitset instances may share the same RLE data table, but can contain different offsets and lengths. Multiple RLE bitsets may share overlapping or identical spans of the table.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions