You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf: Rust decoder 30% faster than C++, and NO unsafe (#69)
* improve rust decoder by 100x+ -- was massively slower due to
un-inlined decoding bit functions
* bump version to 0.8.1
* some minor just file cleanup
* improve readme
---------
Co-authored-by: Frank Elsinga <frank@elsinga.de>
This is a Rust wrapper for the [C++ FastPFor library](https://github.com/fast-pack/FastPFor), as well as a pure Rust re-implementation (work in progress). Supports 32-bit and 64-bit integers, and SIMD-optimized codecs for 128-bit and 256-bit vectors. Based on the [Decoding billions of integers per second through vectorization, 2012](https://arxiv.org/abs/1209.2137) paper.
9
+
This is a Rust wrapper for the [C++ FastPFor library](https://github.com/fast-pack/FastPFor), as well as a pure Rust re-implementation. Supports 32-bit and 64-bit integers, and SIMD-optimized codecs for 128-bit and 256-bit vectors. Based on the [Decoding billions of integers per second through vectorization, 2012](https://arxiv.org/abs/1209.2137) paper.
10
+
11
+
The Rust **decoder** is about 29% faster than the C++ version. The Rust implementation contains no `unsafe` code, and when built without the `cpp` feature this crate has `#![forbid(unsafe_code)]`.
10
12
11
13
### Supported algorithms
12
14
Unless otherwise specified, all codecs support `&[u32]` only.
@@ -45,11 +47,31 @@ Unless otherwise specified, all codecs support `&[u32]` only.
45
47
* VarIntGb
46
48
```
47
49
50
+
## Benchmarks
51
+
### Decoding
52
+
53
+
Using Linux x86-64 running `just bench::cpp-vs-rust-decode native`. The values below are time measurements; smaller values indicate faster decoding.
0 commit comments