summaryrefslogtreecommitdiff
path: root/README.md
blob: bd77aa866c759e592fef38db6f11064ecaa3789d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# swisstable

:warning: Currently, This library works on processors that support `AVX2` .

## links

- [Hackage](https://hackage.haskell.org/package/swisstable-0.1.0.1)
- [Instance definition of Data.HashTable.Class](https://github.com/nakaji-dayo/hs-swisstable-hashtables-class)

## Benchmark snapshot

### time

15564c4
```
benchmarking lookup(seq)/small/SwissTable
time                 218.0 μs   (217.3 μs .. 218.6 μs)
                     1.000 R²   (0.999 R² .. 1.000 R²)
mean                 218.5 μs   (218.2 μs .. 218.8 μs)
std dev              1.074 μs   (903.7 ns .. 1.357 μs)

benchmarking lookup(seq)/small/BasicHashTable
time                 277.8 μs   (277.5 μs .. 278.1 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 277.6 μs   (277.0 μs .. 277.9 μs)
std dev              1.479 μs   (906.2 ns .. 2.655 μs)

benchmarking lookup(rand)/small/SwissTable
time                 386.7 μs   (384.2 μs .. 390.1 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 394.0 μs   (392.4 μs .. 395.4 μs)
std dev              5.017 μs   (4.124 μs .. 6.518 μs)

benchmarking lookup(rand)/small/BasicHashTable
time                 484.9 μs   (483.8 μs .. 485.8 μs)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 484.7 μs   (484.2 μs .. 485.2 μs)
std dev              1.557 μs   (1.294 μs .. 1.956 μs)

benchmarking insert(seq)/sized/small/SwissTable
time                 1.271 ms   (1.265 ms .. 1.278 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.245 ms   (1.238 ms .. 1.252 ms)
std dev              24.58 μs   (20.19 μs .. 29.61 μs)

benchmarking insert(seq)/sized/small/BasicHashTable
time                 1.315 ms   (1.311 ms .. 1.319 ms)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 1.321 ms   (1.319 ms .. 1.322 ms)
std dev              5.360 μs   (4.111 μs .. 6.704 μs)
```

### space

8557655
```
Case                                    Allocated  GCs
Swiss.insert                          362,035,256  314
Data.HashTable.ST.Basic.insert        192,201,784  108
Swiss.insert sized                    162,891,112  140
Data.HashTable.ST.Basic.insert sized  152,675,336   94
```