Skip to content

Commit f382d8d

Browse files
committed
Update benchmark results
1 parent e8e3dc3 commit f382d8d

13 files changed

+1331
-627
lines changed

comparison/README.md

+84-12
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ graphs are boring flat lines, so a table is used instead.
1919

2020
| Implementation | Throughput (GiB/s) |
2121
|----------------|--------------------|
22-
| Rust | 13.5 |
23-
| C | 13.5 |
22+
| Rust | 13.4 |
23+
| C | 13.4 |
2424

2525
## x86_64
2626

2727
| Implementation | Throughput (GiB/s) |
2828
|----------------|--------------------|
29-
| Rust | 16.5 |
30-
| C | 16.5 |
29+
| Rust | 16.7 |
30+
| C | 16.6 |
3131

3232

3333
## Streaming data
@@ -75,7 +75,6 @@ Compares the **time taken** to hash 0 to 32 bytes of data.
7575
/>
7676
</a>
7777

78-
7978
# xxHash3 (64-bit)
8079

8180
## Oneshot hashing
@@ -88,20 +87,21 @@ graphs are boring flat lines, so a table is used instead.
8887

8988
| Implementation | Throughput (GiB/s) |
9089
|----------------|--------------------|
91-
| Rust | 35.2 |
90+
| Rust | 35.0 |
9291
| C | 35.0 |
9392
| C (scalar) | 21.2 |
94-
| C (NEON) | 35.1 |
93+
| C (NEON) | 35.0 |
9594

9695
### x86_64
9796

9897
| Implementation | Throughput (GiB/s) |
9998
|----------------|--------------------|
100-
| Rust | 58.6 |
101-
| C | 25.0 |
102-
| C (scalar) | 7.5 |
99+
| Rust | 58.9 |
100+
| C | 25.1 |
101+
| C (scalar) | 7.6 |
103102
| C (SSE2) | 25.1 |
104-
| C (AVX2) | 57.8 |
103+
| C (AVX2) | 58.4 |
104+
105105

106106
## Streaming data
107107

@@ -150,6 +150,78 @@ cluttering the graph and wasting benchmarking time.
150150
/>
151151
</a>
152152

153+
# xxHash3 (128-bit)
154+
155+
## Oneshot hashing
156+
157+
Compares the **speed** of hashing an entire buffer of data in one
158+
function call. Data sizes from 256 KiB to 4 MiB are tested. These
159+
graphs are boring flat lines, so a table is used instead.
160+
161+
| Implementation | Throughput (GiB/s) |
162+
|----------------|--------------------|
163+
| Rust | 34.4 |
164+
| C | 34.8 |
165+
| C (scalar) | 21.3 |
166+
| C (NEON) | 34.6 |
167+
168+
### x86_64
169+
170+
| Implementation | Throughput (GiB/s) |
171+
|----------------|--------------------|
172+
| Rust | 58.3 |
173+
| C | 25.6 |
174+
| C (scalar) | 7.6 |
175+
| C (SSE2) | 25.5 |
176+
| C (AVX2) | 57.4 |
177+
178+
## Streaming data
179+
180+
Compares the **speed** of hashing a 1 MiB buffer of data split into
181+
various chunk sizes.
182+
183+
### aarch64
184+
185+
<a href="./results/xxhash3_128-streaming-aarch64.svg">
186+
<img
187+
src="./results/xxhash3_128-streaming-aarch64.svg"
188+
alt="xxHash3, 128-bit, streaming data, on an aarch64 processor"
189+
/>
190+
</a>
191+
192+
### x86_64
193+
194+
<a href="./results/xxhash3_128-streaming-x86_64.svg">
195+
<img
196+
src="./results/xxhash3_128-streaming-x86_64.svg"
197+
alt="xxHash3, 128-bit, streaming data, on an x86_64 processor"
198+
/>
199+
</a>
200+
201+
## Small amounts of data
202+
203+
Compares the **time taken** to hash 0 to 230 bytes of
204+
data. Representative samples are taken from similar times to avoid
205+
cluttering the graph and wasting benchmarking time.
206+
207+
### aarch64
208+
209+
<a href="./results/xxhash3_128-tiny_data-aarch64.svg">
210+
<img
211+
src="./results/xxhash3_128-tiny_data-aarch64.svg"
212+
alt="xxHash3, 128-bit, small data, on an aarch64 processor"
213+
/>
214+
</a>
215+
216+
### x86_64
217+
218+
<a href="./results/xxhash3_128-tiny_data-x86_64.svg">
219+
<img
220+
src="./results/xxhash3_128-tiny_data-x86_64.svg"
221+
alt="xxHash3, 128-bit, small data, on an x86_64 processor"
222+
/>
223+
</a>
224+
153225
# Benchmark machines
154226

155227
## Overview
@@ -159,7 +231,7 @@ cluttering the graph and wasting benchmarking time.
159231
| Apple M1 Max | 64 GiB | clang 16.0.0 |
160232
| AMD Ryzen 9 3950X | 32 GiB | cl.exe 19.41.34120 |
161233

162-
Tests were run with `rustc 1.81.0 (eeb90cda1 2024-09-04)`.
234+
Tests were run with `rustc 1.82.0 (f6e511eec 2024-10-15)`.
163235

164236
## Details
165237

comparison/results/xxhash3_128-streaming-aarch64.svg

+174
Loading

comparison/results/xxhash3_128-streaming-x86_64.svg

+200
Loading
Loading

0 commit comments

Comments
 (0)