Hints

Leaving out a tag you need makes the program slower by a constant factor; a hint never changes a guarantee.

How the Store is used. A hint only reorders the containers tried, so the Store has the same interface and the same guarantees with it or without it; each must be backed by a benchmark (Benchmarks).

Question

Tags

Kinds

How many elements?

small

set, map, multiset, sequence, queue, pool, slots, partition

Workload hints, as a query hint or madvise gives one: advice that changes no result.

How many elements?

Category general, which promises nothing: a request that leaves the question open gets it. Asked of: set, map, multiset, sequence, queue, pool, slots, partition.

digraph general { rankdir=LR; node [fontname=sans, fontsize=10]; edge [fontname=sans, fontsize=9]; general [shape=plaintext, fontcolor=gray40, label="general\n(promises nothing)"]; general -> small; }

A few elements: picks compact containers, never changes a guarantee. Must be backed by a benchmark.

small

A few elements, or a few at a time: compact containers first.

  • Role: a hint: it changes the choice, never a guarantee.

  • In plain words: few elements, small, tiny.

  • Shortest served request: Store<set<Id>, small>.