Skip to content

Commit 926c76e

Browse files
authored
docs: add benchmarks to README.md [skip ci]
1 parent a1f420a commit 926c76e

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ Skim provides a single executable called `sk`. Think of it as a smarter alternat
6262
+ [How does it work?](#how-does-it-work-1)
6363
* [Fields support](#fields-support)
6464
* [Use as a library](#use-as-a-library)
65+
* [Benchmarks](#benchmarks)
6566
- [FAQ](#faq)
6667
* [How to ignore files?](#how-to-ignore-files)
6768
* [Some files are not shown in Vim plugin](#some-files-are-not-shown-in-vim-plugin)
@@ -596,6 +597,46 @@ so that you could deal with strings or files easily.
596597
597598
Check out more examples under the [examples/](https://github.com/skim-rs/skim/tree/master/skim/examples) directory.
598599
600+
## Benchmarks
601+
602+
This benchmarks runs the interactive interface in a tmux session, and waits for the UI to stabilize.
603+
It uses a 10 million path-like ASCII items input file, and the query test.
604+
605+
```
606+
=== Results: sk v4.0.0 [baseline] ===
607+
Completed runs: 50 / 50
608+
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782)
609+
Average time: 3.827s (min: 3.576s, max: 4.090s)
610+
Average items/second: 2615767 (min: 2445033, max: 2796365)
611+
Average peak memory usage: 1589.2 MB (min: 1518.6 MB, max: 1661.2 MB)
612+
Average peak CPU usage: 528.9% (min: 457.0%, max: 740.0%)
613+
614+
=== Results: sk v3.7.0 ===
615+
Completed runs: 50 / 50
616+
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782) +0.0%
617+
Average time: 3.930s (min: 3.565s, max: 4.226s) +2.7%
618+
Average items/second: 2548674 (min: 2366263, max: 2804816) -2.6%
619+
Average peak memory usage: 1618.8 MB (min: 1539.1 MB, max: 1680.6 MB) +1.9%
620+
Average peak CPU usage: 696.8% (min: 608.0%, max: 875.0%) +31.7%
621+
622+
=== Results: fzf 0.70.0 ===
623+
Completed runs: 50 / 50
624+
Average items matched: 2895782 / 10000000 (min: 2895782, max: 2895782) +0.0%
625+
Average time: 5.421s (min: 4.814s, max: 6.111s) +41.7%
626+
Average items/second: 1848269 (min: 1636444, max: 2077385) -29.3%
627+
Average peak memory usage: 2015.3 MB (min: 1860.7 MB, max: 2173.9 MB) +26.8%
628+
Average peak CPU usage: 1301.1% (min: 1229.0%, max: 1431.0%) +146.0%
629+
630+
=== Comparison Summary (vs baseline: sk v4.0.0) ===
631+
Binary Avg time Δ time Avg rate Δ rate
632+
------------------------------------------------------------------------------
633+
sk v4.0.0 3.827s baseline 2615767 baseline
634+
sk v3.7.0 3.930s +2.7% 2548674 -2.6%
635+
fzf 0.70.0 5.421s +41.7% 1848269 -29.3%
636+
```
637+
638+
TL;DR: sk v4.0.0 is ~30% faster than fzf 0.70.0 with a third of the CPU usage and less memory usage
639+
599640
# FAQ
600641
601642
## How to ignore files?

0 commit comments

Comments
 (0)