Comparação: Benchmark da saída de valores aleatórios base64 de RUST, linguagem C e shell script

2 min

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

Olá, sou um inútil.

GNU/Linux pode gerar valores aleatórios de /dev/random, mas qual é a diferença quando comparado com Clang?
É desnecessário dizer que Clang é mais rápido! Mas, por enquanto, vamos dar uma olhada.

Ambiente de execução: ThinkPad X230

Desculpe por ser antigo.

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

Oh...
Como esperado de C.

E então 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

Oh...

Conclusão

C é o mais forte, mas considerando o custo de aprendizado e codificação, Rust é mais fácil.
Considerando a legibilidade como linguagem de script, acho que o shell script também tem capacidade suficiente. Porque,
**head -c 15 /dev/random | base64
pode ser gerado apenas com isso...!?

Peço desculpas pela comparação superficial. Sinto muito.

Related Posts