diff options
author | Dennis Eriksen <d@ennis.no> | 2023-09-13 22:08:50 +0200 |
---|---|---|
committer | Dennis Eriksen <d@ennis.no> | 2023-09-13 22:08:50 +0200 |
commit | 74168548c0c96e155e7615f2cb1ae71770ef4713 (patch) | |
tree | 2cd99c8a96577906210a35167ee862cbcbf782c9 /README.md | |
parent | Redid the sh-version. (diff) | |
download | makepass-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.md | 48 |
1 files changed, 31 insertions, 17 deletions
@@ -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. |