Сравнение: Бенчмарк вывода случайных значений base64 из RUST, языка C и скриптов оболочки
Здравствуйте, я бездарь.
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
**можно вывести всего лишь этим!?
Прошу прощения за такое поверхностное сравнение. Извините.