# coolfindpattern
<a href="https://crates.io/crates/coolfindpattern"><img src="https://img.shields.io/crates/v/coolfindpattern.svg"></img></a>
an updated version of my [findpattern](https://github.com/unknowntrojan/findpattern) crate, this time using modern SIMD.
You have to enable SIMD instruction sets in your [.cargo/config.toml](./.cargo/config.toml).
Benchmarks were performed on the following machine:
- AMD Ryzen 7 5800X3D boosting to ~4.3GHz
- 4*16 GB DDR4-3200 Dual-Channel CL16 (51.2GiB/s theoretical maximum)
- (Other specs don't matter)
Measurements run on a single core only.
## Average Time taken (needle=10byte, haystack=1GiB)
| Old Impl | 1000ms | 4008ms | 391.7ms | 273.1ms
| New SSE2 | 92.3ms | 297.7ms | 81.5ms | 94.6ms
| New AVX2 | 64.3ms | 191ms | 66ms | 78.5ms
## Average Speed in GiB/s (needle=10byte, haystack=1GiB)
| Old Impl | 0.98GiB/s | 0.249GiB/s | 2.55GiB/s | 3.6GiB/s
| New SSE2 | 10.8GiB/s | 3.36GiB/s | 12.34GiB/s | 10.57GiB/s
| New AVX2 | 15.5GiB/s | 5.23GiB/s | 15.1GiB/s | 12.7GiB/s