比較 : RUST、C言語とシェルスクリプトからbase64のランダム値を出力した時のベンチマーク
1 min read
こんにちは、無能です。
GNU/Linuxは/dev/randomからランダムな値を生成できますがClangと比較したとき、どれほど差があるのでしょうか?
 もはやClangの方が早い!とは言わずもがなでしょうが、とりあえず見てみましょう。
実行環境 : ThinkPad X230

古くてゴメンネ。
time for i in {1..500}; do head -c 15 /dev/random | base64; done
~~~
 lsWpWr1qsqAxqPCwkHLB
 jw8gkw+m6H1sfeFoIL9t
 5nGDUKmyFgley8vVcqll
 sZ+rLscmCvMOH8EJHmrm
real    0m1.405s
 user    0m1.344s
 sys     0m0.556s
time for i in {1..500}; do ./random ; done
~~~
 FyLg5Ad/ja2eqffx725k
 wTXQ3Yuaqom7H7LpPjHB
 KFX5xaDBj5s4yWDDHpnV
 2e0nQA7IAdM9RiTO4tKV
real    0m0.424s
 user    0m0.311s
 sys     0m0.144s
おお・・・。
 さすがC。
そしてRust。
time for i in {1..500}; do ./rran ; done
~~~
 bx6QlFg2vpc8RZywqwdD
 kJRKlrCq7nZgGG9SBuqa
 JKHpR14IAxiB/1cDF1QZ
 z/4IujC1bbe9FteRRh2P
real 0m0.658s
 user 0m0.435s
 sys 0m0.256s
おお・・・
結論
Cは最強だが、学習やコーディングコストを考えるとRustは楽。
 スクリプト言語としての可読性等を考えると、シェルスクリプトも十分な能力だと思います。だって、
 **head -c 15 /dev/random | base64
 **だけで出力できてしまうんですよ・・・!?
雑に比較しているので悪しからず。すみません。