比较: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