- 1
- 2
- 3
- 4
- 5
https://habr.com/post/358974/
"Как обновление Rust 1.26 ускорило мой код в три с лишним раза"
Яркий пример того, как человек не понимает как работает его код.
И кое-то говорит, что Си - говно
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
https://habr.com/post/358974/
"Как обновление Rust 1.26 ускорило мой код в три с лишним раза"
Яркий пример того, как человек не понимает как работает его код.
И кое-то говорит, что Си - говно
3.14159265 22.08.2021 14:37 # +3
> в Rust нет никакого способа умножить два 64-битных числа, чтобы получить результат более 64 бит (так как целочисленные типы Rust только доходят до u64)
> Это несмотря на то, что x86_64 (наша основная целевая платформа) нативно поддерживает 128-битные результаты вычислений с 64-битными числами.
> Так что мы разделяем каждое 64-битное число на два 32-битных (потому что можно умножить два 32-битных числа и получить 64-битный результат).
Какой ЯВУ )))
> Он делает много лишней работы, по существу, просто чтобы обойти ограничения Rust.
> Всё изменилось в версии Rust 1.26. Теперь мы можем написать a as u128 * b as u128 — и компилятор будет использовать нативное для платформы x86_64 умножение u64-to-u128
То есть они настолько анскильные, что даже ворованный llvm (где всё уже есть) им не помог.
> Хотя это почти наверняка медленнее, чем нативный для LLVM тип i256, но скорость очень сильно выросла.
Но всё-равно вышла хрюкня.
>Здесь мы сравниваем с оригинальной реализацией Rust:
Опять соревнование с инвалидами.
Это, напомню, ЯВУ специально разработанный 2010х как «новая Сишка/Кресты».
JloJle4Ka 22.08.2021 14:53 # 0
ABryCTOBCKuu_nemyx 22.08.2021 15:15 # +3
3.14159265 22.08.2021 15:19 # 0
И взяли с крестов уебанские же std::bagor