Тесты добавлены. Раст, победитель очевиден. Два, всегда можно платить немного (или много) больше за сервер. Думаете Rust сложнее, для избранных, а вот и нет. Я написал два API на Ktor & Axum - 1:1. По удобству использования тоже 1:1. Проекты очень похожи - можно оценить на GitCode. В статье опишу подробно.
Вот что думает DeepSeek по поводу результатов:
📊 Пропускная способность (RPS):
- Axum (3001): 16,220 запросов/сек
- Ktor (3002): 1,177 запросов/сек
- Axum в 13.8 раз быстрее
🎯 Время отклика (http_req_duration):
- Axum: медиана 12.17ms, p90 35.89ms, p95 356.93ms
- Ktor: медиана 15.93s, p90 17.87s, p95 18.41s
- Axum быстрее в 1300+ раз (медиана)
🪢 Успешные итерации:
- Axum: 1,065,040 завершенных итераций
- Ktor: 89,347 завершенных итераций
- Axum обработал в 12 раз больше запросов
🕷 Потерянные итерации (dropped_iterations):
- Axum: 200,465 (незначительные потери)
- Ktor: 18,307,961 (катастрофические потери - 99.5% запросов не смогли обработаться)
Вот что думает DeepSeek по поводу результатов:
- Axum (3001): 16,220 запросов/сек
- Ktor (3002): 1,177 запросов/сек
- Axum в 13.8 раз быстрее
🎯 Время отклика (http_req_duration):
- Axum: медиана 12.17ms, p90 35.89ms, p95 356.93ms
- Ktor: медиана 15.93s, p90 17.87s, p95 18.41s
- Axum быстрее в 1300+ раз (медиана)
🪢 Успешные итерации:
- Axum: 1,065,040 завершенных итераций
- Ktor: 89,347 завершенных итераций
- Axum обработал в 12 раз больше запросов
- Axum: 200,465 (незначительные потери)
- Ktor: 18,307,961 (катастрофические потери - 99.5% запросов не смогли обработаться)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7
Фреймворки Axum и Ktor
Axum - фреймворк для написания web-приложений на Rust. Я решил сравнить его с современным фреймворком Ktor на Kotlin: насколько будет сложно реализовать функционал, доступный в JVM, и насколько будет большая разница в производительности.
🔗 keygenqt.com
🔗 boosty.to
🔗 csdn.net
Axum - фреймворк для написания web-приложений на Rust. Я решил сравнить его с современным фреймворком Ktor на Kotlin: насколько будет сложно реализовать функционал, доступный в JVM, и насколько будет большая разница в производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1👏1
Вот такой формат работы с ИИ мне нравится - помогать, а не пытаться заменить. Перебирать гомно-код, который генерирует ИИ и создавать тех-долг - странная затея, которая в перспективе еще и приведет к потере компетенций. Локальные, условно бесплатные и безопасные модели + полный контроль за кодом. Человек решает что писать и как, а ИИ просто пытается помочь сделать твой код лучше. Формат взаимодействия с ИИ серьезно зависит от опыта и навыков программиста, но главное, чтобы результат был безопасным, не дорогим и качественным.
👍8🔥2😇1
В MAX стали доступны каналы, сделал такой. Контент буду дублировать - читайте где удобнее. Сделал бы еще и в WeChat - но там нет привычных нам каналов 🤷♂️.
Vitaliy Zarubin | @keygenqt
Vitaliy Zarubin | @keygenqt
👍8🤡4
Хитрый компилятор Rust оптимизировал функцию, а Kotlin не сообразил, где можно схитрить. О чём это нам говорит? О том, что в Rust оптимизация лучше и что тесты нужно подправить и перепроверить. Разрыв остаётся, но уже не такой огромный.
Задача проекта — не проверить, насколько быстрее Rust (всем очевидно, что он быстрее, obviously). Я хочу сравнить Rust и Kotlin в удобстве использования — вот здесь не всё так очевидно. Пока Rust держится молодцом.
Задача проекта — не проверить, насколько быстрее Rust (всем очевидно, что он быстрее, obviously). Я хочу сравнить Rust и Kotlin в удобстве использования — вот здесь не всё так очевидно. Пока Rust держится молодцом.
👍7🔥2
Vitaliy Zarubin | @keygenqt
Хитрый компилятор Rust оптимизировал функцию, а Kotlin не сообразил, где можно схитрить. О чём это нам говорит? О том, что в Rust оптимизация лучше и что тесты нужно подправить и перепроверить. Разрыв остаётся, но уже не такой огромный. Задача проекта — не…
Обновил тесты и результаты. Разрыв уменьшился. В общем, стабильно Kotlin медленнее. Но в родной среде Kotlin (JVM) Rust немного отстал.
🔥5
Vitaliy Zarubin | @keygenqt
Печально, но это безумие справа g-ir-scanner не понимать... Нужно как-то извращаться для использовании Kotlin библиотеки в GJS. Но мне лень - считаю что здесь Kotlin потерпел неудачу - 0ms результат Kotlin в Linux =)
Ладно, добавим Kotlin в GJS. Это не займет много времени, все равно не спится.
✅ Web (React): rust ~1290ms, kotlin ~5971ms.
✅ Android (Compose): rust ~1599ms, kotlin ~1516ms.
✅ Aurora OS (Qt/QML): rust ~1285ms, kotlin ~1472ms.
✅ Linux (GJS): rust ~1498ms, kotlin ~1743ms.
✅ iOS (SwiftUI): rust ~1179ms, kotlin ~1308ms.
✅ macOS (SwiftUI): rust ~1138ms, kotlin ~1288ms.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8
8 платформ, нативный UI, общая бизнес-логика на Rust и Kotlin.
Проект KMP & Rust демонстрирует способы взаимодействия библиотек Rust и Kotlin с нативными платформами и тестирует разницу в производительности языков. На всех платформах тестовая функция запускается асинхронно и проверяет:
- Интенсивные вычисления в цикле
- Работу с динамической памятью
- Вычисления с плавающей запятой
Результаты:
- Web (React): Rust ~1290ms, Kotlin ~5971ms
- Android (Jetpack Compose): Rust ~1599ms, Kotlin ~1516ms
- Aurora OS (Qt/QML): Rust ~1285ms, Kotlin ~1472ms
- Linux (Gnome): Rust ~1498ms, Kotlin ~1743ms
- iOS (SwiftUI): Rust ~1179ms, Kotlin ~1308ms
- macOS (SwiftUI): Rust ~1138ms, Kotlin ~1288ms
- HarmonyOS (ArkUI): Rust ~3616ms, Kotlin — нет поддержки
- Windows (WPF): Rust ~1147ms, Kotlin ~5799ms
Rust:
- Минимальный разброс между платформами
- Предсказуемая производительность
- Широкая поддержка платформ
- Минимальный overhead
- Понятное подключение к платформам
- Отсутствие привязок к конкретным платформам
Kotlin:
- Удобство использования на некоторых платформах
- Отличная оптимизация в Android
- Ограниченная поддержка платформ
- Молодые и медленные таргеты (Wasm/MinGW)
- Замедляющие абстракции и runtime
- Сложности работы с C-библиотеками
Итог:
Rust — отличный кандидат для создания библиотеки с общей бизнес-логикой. Он стабилен, прост и поддерживает широкий выбор платформ. KMP хорош в Android и iOS/macOS благодаря генерации привязок к платформе — в Rust это нужно делать руками. С другой стороны, C-библиотеки в KMP — это ужасно. В общем: Rust — blazing fast🚀 , Kotlin — как получится.
Проект KMP & Rust демонстрирует способы взаимодействия библиотек Rust и Kotlin с нативными платформами и тестирует разницу в производительности языков. На всех платформах тестовая функция запускается асинхронно и проверяет:
- Интенсивные вычисления в цикле
- Работу с динамической памятью
- Вычисления с плавающей запятой
Результаты:
- Web (React): Rust ~1290ms, Kotlin ~5971ms
- Android (Jetpack Compose): Rust ~1599ms, Kotlin ~1516ms
- Aurora OS (Qt/QML): Rust ~1285ms, Kotlin ~1472ms
- Linux (Gnome): Rust ~1498ms, Kotlin ~1743ms
- iOS (SwiftUI): Rust ~1179ms, Kotlin ~1308ms
- macOS (SwiftUI): Rust ~1138ms, Kotlin ~1288ms
- HarmonyOS (ArkUI): Rust ~3616ms, Kotlin — нет поддержки
- Windows (WPF): Rust ~1147ms, Kotlin ~5799ms
Rust:
- Минимальный разброс между платформами
- Предсказуемая производительность
- Широкая поддержка платформ
- Минимальный overhead
- Понятное подключение к платформам
- Отсутствие привязок к конкретным платформам
Kotlin:
- Удобство использования на некоторых платформах
- Отличная оптимизация в Android
- Ограниченная поддержка платформ
- Молодые и медленные таргеты (Wasm/MinGW)
- Замедляющие абстракции и runtime
- Сложности работы с C-библиотеками
Итог:
Rust — отличный кандидат для создания библиотеки с общей бизнес-логикой. Он стабилен, прост и поддерживает широкий выбор платформ. KMP хорош в Android и iOS/macOS благодаря генерации привязок к платформе — в Rust это нужно делать руками. С другой стороны, C-библиотеки в KMP — это ужасно. В общем: Rust — blazing fast
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9👍3