mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 19:50:14 +01:00
The hash table design is heavily based on Abseil's ["Swiss Tables"][swiss-tables] design. It uses an array of bytes storing metadata about each entry and an array of entries where each is a pair of key and value. The metadata byte consists of 7-bits of hash of the key (distinct from the bits used to index the table), and one bit indicating the presence of a special entry -- either empty or deleted. [swiss-tables]: https://abseil.io/about/design/swisstables There are a large range of optimizations and other nuanced aspects of this hash table design and implementation, a good point to understand that context is `raw_hashtable.h` which has an overview of the design and references to various other files for relevant details. --------- Co-authored-by: josh11b <15258583+josh11b@users.noreply.github.com>
13 lines
418 B
Bash
Executable File
13 lines
418 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
# Exceptions. See /LICENSE for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
BENCHMARK="$TEST_SRCDIR/$TEST_WORKSPACE/common/set_benchmark"
|
|
|
|
exec "$BENCHMARK" \
|
|
--benchmark_counters_tabular=true \
|
|
--benchmark_min_time=1x \
|
|
--benchmark_filter='^[^/]*/[1-9][0-9]{0,3}(/[0-9]+)?$'
|