Skip to content

Investigate the applicability of the Eytzinger order to inversion list-based sets #2217

Open
@hsivonen

Description

@hsivonen

Currently, icu_uniset stores sets as an inversion list and performs binary search on the list. Binary search accesses memory both forward and backward. The Eytzinger order orders array elements for logically binary-search-like search so that the accesses are forward-only. We should investigate if this order is suitable for inversion lists, i.e. if the mismatch situation gives enough information about whether the search key in inside or outside the set.

(AFAICT, this wouldn't solve the issue that the characters most commonly looked up from sets are ASCII, which tends to involve the maximum number of comparisons in binary search anyway.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-performanceArea: Performance (CPU, Memory)C-unicodeComponent: Props, sets, triesT-enhancementType: Nice-to-have but not requiredhelp wantedIssue needs an assignee

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions