Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Адаптация Relay для большой кодовой базы
На прошедшем React Conf 2021 был представлен новый компилятор Relay для оптимизации GraphQL-запросов — "Introducing the new Relay compiler".
Relay — это фреймворк для работы с GraphQL в React-приложениях. При использовании Relay компоненты декларативно описывают необходимые им данные с помощью GraphQL-фрагментов. Компилятор Relay на этапе сборки приложения обходит компоненты и подготавливает оптимизированный GraphQL-запрос на базе этих фрагментов.
Скорость компилятора с ростом кодовой базы Facebook постепенно ухудшалась, поэтому его переписали c JavaScript на Rust. Скорость работы компилятора улучшилась в пять-семь раз. Кроме улучшения производительности новый компилятор подготовил платформу для дальнейшего улучшения Relay. Например, благодаря ему появилась поддержка новой директивы
#react #graphql #rust
https://relay.dev/blog/2021/12/08/introducing-the-new-relay-compiler/
На прошедшем React Conf 2021 был представлен новый компилятор Relay для оптимизации GraphQL-запросов — "Introducing the new Relay compiler".
Relay — это фреймворк для работы с GraphQL в React-приложениях. При использовании Relay компоненты декларативно описывают необходимые им данные с помощью GraphQL-фрагментов. Компилятор Relay на этапе сборки приложения обходит компоненты и подготавливает оптимизированный GraphQL-запрос на базе этих фрагментов.
Скорость компилятора с ростом кодовой базы Facebook постепенно ухудшалась, поэтому его переписали c JavaScript на Rust. Скорость работы компилятора улучшилась в пять-семь раз. Кроме улучшения производительности новый компилятор подготовил платформу для дальнейшего улучшения Relay. Например, благодаря ему появилась поддержка новой директивы
@required для упрощения работы с данными. Также этот компилятор лежит в основе расширения для VSCode для поддержки автодополнения имён полей в GraphQL-фрагментах. Расширение на данный момент недоступно для внешних пользователей, так как над ним ещё ведётся работа.#react #graphql #rust
https://relay.dev/blog/2021/12/08/introducing-the-new-relay-compiler/
relay.dev
Introducing the new Relay compiler | Relay
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Возможно, вам не нужен Rust и WASM, если у вас есть JavaScript
Увидел в канале @ufostation ссылку на статью Вячеслава Егорова про анализ проблем производительности библиотеки source-map — "Maybe you don't need Rust and WASM to speed up your JS".
Авторы source-map переписали основную логику библиотеки на Rust и WebAssembly, чтобы улучшить производительность. Егор решил проверить оригинальный код на предмет возможных оптимизаций. Там были найдены и исправлены проблемы, связанные с неоптимальной сортировкой, была уменьшена нагрузка на сборщик мусора заменой большого числа объектов типизированным массивом с ссылками на нужные данные, была испралвена проблема с деоптимизацией кода, связанной с передачей двух аргументов в функцию, которая ожидает на вход три аргумента.
В результате всех оптимизаций JavaScript-код стал уступать по скорости Rust и WebAssembly всего лишь на 15%.
Крутая статья. Рекомендую почитать всем.
#performance #js #internals #webassembly #rust
https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html
https://habr.com/ru/post/350018/ (перевод на русский)
Увидел в канале @ufostation ссылку на статью Вячеслава Егорова про анализ проблем производительности библиотеки source-map — "Maybe you don't need Rust and WASM to speed up your JS".
Авторы source-map переписали основную логику библиотеки на Rust и WebAssembly, чтобы улучшить производительность. Егор решил проверить оригинальный код на предмет возможных оптимизаций. Там были найдены и исправлены проблемы, связанные с неоптимальной сортировкой, была уменьшена нагрузка на сборщик мусора заменой большого числа объектов типизированным массивом с ссылками на нужные данные, была испралвена проблема с деоптимизацией кода, связанной с передачей двух аргументов в функцию, которая ожидает на вход три аргумента.
В результате всех оптимизаций JavaScript-код стал уступать по скорости Rust и WebAssembly всего лишь на 15%.
Крутая статья. Рекомендую почитать всем.
#performance #js #internals #webassembly #rust
https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html
https://habr.com/ru/post/350018/ (перевод на русский)
Forwarded from The Devs
Forwarded from The Devs
Comprehensive Rust, the Rust course used by the Android team at Google.
#course #tutorial #rust
@thedevs
@thedevs_rust
https://thedevs.link/Ha42HI
#course #tutorial #rust
@thedevs
@thedevs_rust
https://thedevs.link/Ha42HI
Forwarded from The Devs
Forwarded from The Devs
Why choose async/await over threads?
#article #rust #coding
@thedevs
@thedevs_rust
https://thedevs.link/I7rqJ6
#article #rust #coding
@thedevs
@thedevs_rust
https://thedevs.link/I7rqJ6
Forwarded from The Devs
Leaving Rust gamedev after 3 years.
#article #coding #rust
@thedevs
@thedevs_rust
https://thedevs.link/02T4qD
#article #coding #rust
@thedevs
@thedevs_rust
https://thedevs.link/02T4qD
Forwarded from The Devs
Forwarded from Daily Coding 🔥
📖Asynchronous Programming in Rust
🖋Carl Fredrik Samson. 2024
Уверенно шагните в мир асинхронного программирования, преодолев трудности, связанные с неясными концепциями, с помощью этого практического руководства. Используя функциональные примеры, эта книга упрощает самые сложные концепции, исследуя подпрограммы, волокна, фьючерсы и обратные вызовы, чтобы помочь вам с легкостью ориентироваться в обширной асинхронной экосистеме Rust. Вы начнете с создания прочного фундамента в асинхронном программировании и изучите различные стратегии моделирования потока выполнения программ. Затем книга познакомит вас с такими понятиями, как epoll, сопрограммы, "зеленые потоки" и обратные вызовы, используя практические примеры.
💾 Скачать книгу
Daily Coding #книги #Rust
🖋Carl Fredrik Samson. 2024
Уверенно шагните в мир асинхронного программирования, преодолев трудности, связанные с неясными концепциями, с помощью этого практического руководства. Используя функциональные примеры, эта книга упрощает самые сложные концепции, исследуя подпрограммы, волокна, фьючерсы и обратные вызовы, чтобы помочь вам с легкостью ориентироваться в обширной асинхронной экосистеме Rust. Вы начнете с создания прочного фундамента в асинхронном программировании и изучите различные стратегии моделирования потока выполнения программ. Затем книга познакомит вас с такими понятиями, как epoll, сопрограммы, "зеленые потоки" и обратные вызовы, используя практические примеры.
💾 Скачать книгу
Daily Coding #книги #Rust
Forwarded from Daily Coding 🔥
📖Command-Line Rust
🖋Ken Youens-Clark 2022
В ежегодном опросе разработчиков Stack Overflow Rust уже несколько лет подряд признается «самым любимым языком программирования». Этот язык системного программирования с открытым исходным кодом сегодня используется для самых разных целей — от игровых движков и операционных систем до компонентов браузеров и движков для симуляции виртуальной реальности. Но при этом Rust — невероятно сложный язык с непростой кривой обучения.
💾 Скачать книгу
Daily Coding #книги #Rust
🖋Ken Youens-Clark 2022
В ежегодном опросе разработчиков Stack Overflow Rust уже несколько лет подряд признается «самым любимым языком программирования». Этот язык системного программирования с открытым исходным кодом сегодня используется для самых разных целей — от игровых движков и операционных систем до компонентов браузеров и движков для симуляции виртуальной реальности. Но при этом Rust — невероятно сложный язык с непростой кривой обучения.
💾 Скачать книгу
Daily Coding #книги #Rust
Forwarded from Daily Coding 🔥
📖Rust in Action
🖋Tim McNamara 2024
Первая цель этой книги — научить вас программировать на Rust. В книге «Rust в действии» представлены крупные рабочие проекты, которые помогут вам в обучении. На протяжении всей книги вы будете писать базу данных, эмулятор процессора, ядро операционной системы и несколько других интересных проектов. Вы даже попробуете себя в генеративном искусстве. Каждый проект разработан таким образом, чтобы вы могли изучать язык программирования Rust в удобном для вас темпе. Для тех, кто плохо знаком с Rust, есть множество возможностей расширить проекты в любом направлении.
💾 Скачать книгу
Daily Coding #книги #Rust & Max
🖋Tim McNamara 2024
Первая цель этой книги — научить вас программировать на Rust. В книге «Rust в действии» представлены крупные рабочие проекты, которые помогут вам в обучении. На протяжении всей книги вы будете писать базу данных, эмулятор процессора, ядро операционной системы и несколько других интересных проектов. Вы даже попробуете себя в генеративном искусстве. Каждый проект разработан таким образом, чтобы вы могли изучать язык программирования Rust в удобном для вас темпе. Для тех, кто плохо знаком с Rust, есть множество возможностей расширить проекты в любом направлении.
💾 Скачать книгу
Daily Coding #книги #Rust & Max
Forwarded from Daily Coding 🔥
📖Rust Atomics and Locks: Low-Level Concurrency in Practice
🖋Bos Mara 2024
В этой практичной книге Мара Бос, руководитель команды разработчиков библиотеки Rust, помогает программистам на Rust любого уровня разобраться в низкоуровневых механизмах параллельной обработки. Вы узнаете все об атомарных операциях и упорядочивании памяти, а также о том, как они сочетаются с базовыми API операционной системы для создания таких распространенных примитивов, как мьютексы и условные переменные. Прочитав эту книгу, вы будете хорошо понимать, как взаимодействуют модель памяти Rust, процессор и операционная система.
💾 Скачать книгу
Daily Coding #книги #Rust & Max
🖋Bos Mara 2024
В этой практичной книге Мара Бос, руководитель команды разработчиков библиотеки Rust, помогает программистам на Rust любого уровня разобраться в низкоуровневых механизмах параллельной обработки. Вы узнаете все об атомарных операциях и упорядочивании памяти, а также о том, как они сочетаются с базовыми API операционной системы для создания таких распространенных примитивов, как мьютексы и условные переменные. Прочитав эту книгу, вы будете хорошо понимать, как взаимодействуют модель памяти Rust, процессор и операционная система.
💾 Скачать книгу
Daily Coding #книги #Rust & Max