Performance improvements
This release brings a custom thread pool & coordinator shared between the reader & matcher (instead of a single-threaded reader and rayon for the matcher).
In practice, this makes skim up to 4x as fast as fzf with 100M items in our benchmarks, see below for details (note the logarithmic scales).
100K items
| Binary | Avg Time (s) | Avg CPU (%) | Avg RAM (MB) |
|---|---|---|---|
| fzf 0.70.0 | 0.1756 | 50.7 | 36.7 |
| sk v4.2.0 | 0.1755 | 173.0 | 104.9 |
| sk v4.3.0 | 0.1753 | 185.2 | 92.5 |
1M items
| Binary | Avg Time (s) | Avg CPU (%) | Avg RAM (MB) |
|---|---|---|---|
| fzf 0.70.0 | 0.1773 | 655.1 | 156.9 |
| sk v4.2.0 | 0.2266 | 779.7 | 275.2 |
| sk v4.3.0 | 0.1969 | 893.7 | 286.5 |
10M items
| Binary | Avg Time (s) | Avg CPU (%) | Avg RAM (MB) |
|---|---|---|---|
| fzf 0.70.0 | 1.868 | 1548.8 | 1860.4 |
| sk v4.2.0 | 1.338 | 894.9 | 1694.4 |
| sk v4.3.0 | 0.984 | 1500.1 | 1798.2 |
100M items
| Binary | Avg Time (s) | Avg CPU (%) | Avg RAM (GB) |
|---|---|---|---|
| fzf 0.70.0 | 40.840 | 1964.5 | 19.03 |
| sk v4.2.0 | 16.602 | 917.2 | 13.35 |
| sk v4.3.0 | 10.113 | 1569.4 | 15.27 |
Install skim 4.3.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/skim-rs/skim/releases/download/v4.3.0/skim-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/skim-rs/skim/releases/download/v4.3.0/skim-installer.ps1 | iex"Download skim 4.3.0
| File | Platform | Checksum |
|---|---|---|
| skim-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| skim-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| skim-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| skim-x86_64-pc-windows-msvc.msi | x64 Windows | checksum |
| skim-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| skim-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| skim-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| skim-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |