🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust
Например, Pydantic v2 использует pydantic-core, написанный на Rust. Связка работает через PyO3: Rust-функции компилируются в нативную библиотеку, после чего Python импортирует её как обычный модуль.
Но есть интересный нюанс: ускорить сам алгоритм недостаточно.
При возврате большого результата Rust должен превратить свои структуры в Python dict, list, str, float и другие объекты. Для больших данных эта конвертация может занимать больше времени, чем сама обработка в Rust.
Главный вывод: если переносите горячий код Python на Rust через PyO3, профилируйте не только вычисления, но и границу между двумя языками.
Иногда именно она съедает весь выигрыш в производительности.
https://belderbos.dev/blog/how-libraries-run-rust-inside-python/
Post #1566
665

- 👍 4
- ❤ 2
- 🔥 2