比較:從 RUST、C 語言和 Shell 腳本輸出 base64 隨機值時的基準測試

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是無能。

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 更為輕鬆。
如果考慮作為腳本語言的可讀性等因素,Shell 腳本也具備足夠的能力。畢竟,
**head -c 15 /dev/random | base64
**光是這樣就能輸出...!?

由於是粗略的比較,請見諒。抱歉。

Related Posts