Я оцениваю производительность Rust для распространенных операций со значениями i128 и i64. Оказывается, значение i128 требует 2 дополнительных операций ЦП для выполнения одной и той же операции. Я использовал Rustc v1.83.0 с флагом -O.
Rust godbolt
Однако для сравнения я также использовал аналогичную логику для C++ clang 14 и -O, и, что удивительно, он показал одинаковое количество операций ЦП для типов int64_t и __int128.
C++ godbolt
Я понимаю, что Rust использует LLVM для генерации кода, который отличается от clang, но я ожидал, что такие базовые операции низкого уровня будут оптимизированы аналогичным образом.
Почему такая разница? Как я могу использовать более оптимизированную реализацию в Rust?
Подробнее здесь: https://stackoverflow.com/questions/793 ... c-i128-ops
Инструкции процессора Rust i128 ops отличаются от инструкций C++ i128 ops ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение