aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDennis Eriksen <d@ennis.no>2023-09-13 22:08:50 +0200
committerDennis Eriksen <d@ennis.no>2023-09-13 22:08:50 +0200
commit74168548c0c96e155e7615f2cb1ae71770ef4713 (patch)
tree2cd99c8a96577906210a35167ee862cbcbf782c9 /README.md
parentRedid the sh-version. (diff)
downloadmakepass-74168548c0c96e155e7615f2cb1ae71770ef4713.tar.gz
Adding rust-version
This needs a lot of cleanup and commenting, but it works. It's FAST. Even faster than the go-version.
Diffstat (limited to 'README.md')
-rw-r--r--README.md48
1 files changed, 31 insertions, 17 deletions
diff --git a/README.md b/README.md
index eee6ee2..e9e9832 100644
--- a/README.md
+++ b/README.md
@@ -163,31 +163,36 @@ Here are the results so far:
```
% hyperfine --time-unit=millisecond --warmup=1 --shell=none ./makepass.*
Benchmark 1: ./makepass.bash
- Time (mean ± σ): 75.4 ms ± 1.8 ms [User: 29.5 ms, System: 37.9 ms]
- Range (min … max): 71.4 ms … 78.3 ms 39 runs
+ Time (mean ± σ): 77.4 ms ± 2.1 ms [User: 27.8 ms, System: 33.8 ms]
+ Range (min … max): 72.8 ms … 80.8 ms 37 runs
Benchmark 2: ./makepass.go
- Time (mean ± σ): 7.0 ms ± 0.2 ms [User: 1.6 ms, System: 4.8 ms]
- Range (min … max): 6.4 ms … 7.5 ms 424 runs
+ Time (mean ± σ): 7.2 ms ± 0.2 ms [User: 1.2 ms, System: 4.9 ms]
+ Range (min … max): 6.6 ms … 7.6 ms 409 runs
Benchmark 3: ./makepass.pl
- Time (mean ± σ): 38.7 ms ± 0.3 ms [User: 18.8 ms, System: 18.5 ms]
- Range (min … max): 38.1 ms … 39.9 ms 78 runs
+ Time (mean ± σ): 39.4 ms ± 0.3 ms [User: 19.6 ms, System: 15.4 ms]
+ Range (min … max): 38.8 ms … 40.4 ms 76 runs
-Benchmark 4: ./makepass.sh
- Time (mean ± σ): 624.1 ms ± 2.5 ms [User: 159.0 ms, System: 903.0 ms]
- Range (min … max): 620.1 ms … 626.7 ms 10 runs
+Benchmark 4: ./makepass.rs
+ Time (mean ± σ): 4.8 ms ± 0.2 ms [User: 1.3 ms, System: 2.3 ms]
+ Range (min … max): 4.3 ms … 5.7 ms 606 runs
-Benchmark 5: ./makepass.zsh
- Time (mean ± σ): 26.3 ms ± 0.6 ms [User: 12.2 ms, System: 11.1 ms]
- Range (min … max): 25.1 ms … 27.8 ms 114 runs
+Benchmark 5: ./makepass.sh
+ Time (mean ± σ): 646.5 ms ± 2.6 ms [User: 145.0 ms, System: 1005.0 ms]
+ Range (min … max): 643.2 ms … 651.3 ms 10 runs
+
+Benchmark 6: ./makepass.zsh
+ Time (mean ± σ): 26.9 ms ± 0.6 ms [User: 12.4 ms, System: 12.3 ms]
+ Range (min … max): 25.5 ms … 28.4 ms 111 runs
Summary
- './makepass.go' ran
- 3.76 ± 0.12 times faster than './makepass.zsh'
- 5.53 ± 0.13 times faster than './makepass.pl'
- 10.78 ± 0.36 times faster than './makepass.bash'
- 89.19 ± 2.10 times faster than './makepass.sh'
+ './makepass.rs' ran
+ 1.49 ± 0.06 times faster than './makepass.go'
+ 5.56 ± 0.23 times faster than './makepass.zsh'
+ 8.16 ± 0.28 times faster than './makepass.pl'
+ 16.02 ± 0.69 times faster than './makepass.bash'
+ 133.85 ± 4.52 times faster than './makepass.sh'
```
## Versions
@@ -205,6 +210,15 @@ $ go build -o ../makepass.go -C go/ -ldflags "-s -w" makepass.go
### Perl
Perl version. I like this version <3
+### Rust
+Rust-version. It's fast!
+
+Build with (from root):
+
+```
+$ cd rust; cargo build --release; cd ../; ln -s rust/target/release/makepass makepass.rs
+```
+
### Shell
*Should* be pure POSIX sh. Needs some cleanup.