比較 : 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
**だけで出力できてしまうんですよ・・・!?

雑に比較しているので悪しからず。すみません。