На проходящей конференции Qt World Summit Страуструп, создатель языка C++, дал советы по использованию C++:
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
«Никогда не используйте необработанный указатель в качестве дескриптора ресурса, например. Тогда вы нарушаете все, что я сказал. Никогда не передавайте набор элементов одним необработанным указателем, например, указателем на массив. Вы не знаете, сколько там элементов. Вы не можете провести достойную проверку диапазона. Если вы передаете вектор, он знает, сколько у него элементов, он знает, какие у него типы.
«Я почти никогда больше не использую приведения типов, кстати, это общая программная штука. И если вы не используете приведения типов, есть много ошибок типов, которые вы не можете сделать.
«Традиционно способ получить много всего из функции заключается в том, что вы помещаете что-то в свободное хранилище, динамическое хранилище, а затем вы передаете указатель, и затем вам нужно помнить, что рано или поздно его нужно удалить. В наши дни вы можете просто переместить вектор. Обычно это нулевые затраты».
"оператор new и оператор delete не должны быть в коде приложения"
Кроме того, Страуструп выступает за использования импорта модулей вместо стандартных include, так как использование #include является транзитивным (порядок имеет значение), вызывает повторную компиляцию и может привести к тонким ошибкам. Напротив, импорт не является транзитивным, и большую часть компиляции можно выполнить только один раз.
Также Страуструп высказался за наличие нескольких пустьи не совсем совместимых компиляторов C++, поскольку это увеличивает конкуренцию и простор для инноваций нежели, если бы существовал бы единый компилятор.
https://devclass.com/2025/05/09/interview-bjarne-stroustrup-on-21st-century-c-ai-risks-and-why-the-language-is-hard-to-replace/
DEVCLASS
Interview: Bjarne Stroustrup on 21st century C++, AI risks, and why the language is hard to replace • DEVCLASS
C++ inventor Bjarne Stroustrup talked to DevClass on how to write modern C++, the problem with trying to […]
👍17❤11❤🔥5🤔2🤡1
Microsoft снова призывает разработчиков использовать React Native для разработки настольных приложений для Windows, несмотря на свои инвестиции в другие подходы с использованием C# или C++.
Инженер-программист Кьяра Муни опубликовала пост о том, как команда Office использует React Native, заявив, что это «повысило надежность приложений и улучшило их опыт разработки».
Муни выделяет три ключевых преимущества React Native.
1)разработчики могут обмениваться навыками между веб- и настольными версиями приложения, используя JavaScript/TypeScript
2)React Native позволяет создавать кроссплатформенные приложения, использующие элементы управления, встроенные в операционную систему
3)можно встраивать компоненты React Native в существующие приложения Windows
Разработчики Windows часто замечали, что команда Office в Microsoft не принимает настольные фреймворки, которые компания создает для других. Office никогда не использовал .NET Windows Forms или WPF (Windows Presentation Foundation), например.
Сегодня то же самое, Office в основном создан с использованием C++ и React Native, а не с использованием .NET MAUI (Multi-platform app UI), например. Вообщем, почему Microsoft использует сторонние решение, а не полагается на свой собственный стек технологий, до сих пор для многих остается загадкой.
https://devblogs.microsoft.com/react-native/2025-05-09-office-modernize/
Инженер-программист Кьяра Муни опубликовала пост о том, как команда Office использует React Native, заявив, что это «повысило надежность приложений и улучшило их опыт разработки».
Муни выделяет три ключевых преимущества React Native.
1)разработчики могут обмениваться навыками между веб- и настольными версиями приложения, используя JavaScript/TypeScript
2)React Native позволяет создавать кроссплатформенные приложения, использующие элементы управления, встроенные в операционную систему
3)можно встраивать компоненты React Native в существующие приложения Windows
Разработчики Windows часто замечали, что команда Office в Microsoft не принимает настольные фреймворки, которые компания создает для других. Office никогда не использовал .NET Windows Forms или WPF (Windows Presentation Foundation), например.
Сегодня то же самое, Office в основном создан с использованием C++ и React Native, а не с использованием .NET MAUI (Multi-platform app UI), например. Вообщем, почему Microsoft использует сторонние решение, а не полагается на свой собственный стек технологий, до сих пор для многих остается загадкой.
https://devblogs.microsoft.com/react-native/2025-05-09-office-modernize/
Microsoft News
How Office Is Modernizing Their App Suite’s UI using Windows App SDK and React Native
An inside look at how Office has modernized their UI with WinAppSDK and React Native.
🤣40🤯7🤬7😢4👍3❤1👎1😁1🤡1
Добавлены два новых мобильных приложения:
для руководства по Kotlin
https://www.rustore.ru/catalog/app/com.metanit.kotlin_tutorial_full
и для руководства по C++
https://www.rustore.ru/catalog/app/com.metanit.cpp_tutorial_full
для руководства по Kotlin
https://www.rustore.ru/catalog/app/com.metanit.kotlin_tutorial_full
и для руководства по C++
https://www.rustore.ru/catalog/app/com.metanit.cpp_tutorial_full
RuStore
Руководство по языку Kotlin в каталоге RuStore
🚀 Руководство по языку Kotlin — Руководство по языку программирования Kotlin 📱 Скачайте за 799 рублей на смартфон, ТВ или планшет. Официальная версия (1.0) в RuStore — до 1 тыс установок, рейтинг 0,0★. Безопасно для 0+.
❤11🔥7👍4🥰3🤩2😁1🎉1
15 мая 2025 года языку Rust исполнилось 10 лет. Хотя проект Rust был основан в 2006 году, выпуск 0.1 был сформирован в 2012 году, а первая стабильная версия вышла 15 мая 2015 года.
Rust сфокусирован на безопасной работе с памятью, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Команда разработчиков Rust отпраздновала 10-летие выпуском нового релиза - Rust 1.87. Основные изменения:
- в стандартную библиотеку добавлены анонимные каналы (anonymous pipe), для создания которых применяется метод std::io::pipe()
- разрешён вызов из safe‑кода большинства встроенных в компилятор функций std::arch
- из блоков asm! с ассемблерным кодом разрешено осуществлять переходы на блоки с кодом на языке Rust, что упрощает разработку низкоуровневого кода
- разрешено точно указывать захваченные обобщённые типы и время жизни в определениях трейтов с использованием impl Trait;
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/
Rust сфокусирован на безопасной работе с памятью, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Команда разработчиков Rust отпраздновала 10-летие выпуском нового релиза - Rust 1.87. Основные изменения:
- в стандартную библиотеку добавлены анонимные каналы (anonymous pipe), для создания которых применяется метод std::io::pipe()
- разрешён вызов из safe‑кода большинства встроенных в компилятор функций std::arch
- из блоков asm! с ассемблерным кодом разрешено осуществлять переходы на блоки с кодом на языке Rust, что упрощает разработку низкоуровневого кода
- разрешено точно указывать захваченные обобщённые типы и время жизни в определениях трейтов с использованием impl Trait;
https://blog.rust-lang.org/2025/05/15/Rust-1.87.0/
🎉10🤮4👏1
В сообществе Python сообщили, что Microsoft уволила команду программистов проекта Faster CPython (коллекции макро‑тестов для языка программирования Python), включая технического руководителя Марка Шеннона и ведущих разработчиков ядра Python из команды Faster CPython.
Команда разработчиков Faster CPython узнала об увольнении в дороге на Python Language Summit на PyCon.
https://www.reddit.com/r/Python/comments/1kmwdbu/microsoft_layoffs_hit_faster_cpython_team/
Напомню, что ранее Microsoft провел сокращения ключевых и опытных разработчиков в командах, которые занимаются Android, .NET MAUI, TypeScript
Команда разработчиков Faster CPython узнала об увольнении в дороге на Python Language Summit на PyCon.
https://www.reddit.com/r/Python/comments/1kmwdbu/microsoft_layoffs_hit_faster_cpython_team/
Напомню, что ранее Microsoft провел сокращения ключевых и опытных разработчиков в командах, которые занимаются Android, .NET MAUI, TypeScript
Reddit
From the Python community on Reddit
Explore this post and more from the Python community
😢33🤯10👍3👎3🤔2😁1
Корпорация Microsoft выпустила обновление безопасности для ОС Windows 10 под номером KB5058379, установка которого полностью выводит компьютер из строя. После его внедрения в систему она перестает запускаться – вместо этого она выводит на дисплей меню восстановления (Windows Recovery) и заставляет пользователя ввести ключ BitLocker,
KB5058379 — это обязательное обновление безопасности. Оно выпускается для всех пользователей (за некоторыми исключениями), включая предприятия и корпорации, и у тех, кто еще пользуется Windows 10, нет возможности отказаться от его установки. Можно лишь отложить инсталляцию, но, если не предпринять меры и не выключить службу обновлений, этот патч рано или поздно проникнет в систему.
Есть мнение, что таким незамысловатым способом Microsoft хочет заставить пользователей перейти на Windows 11, так как поддержка Windows 10 заканчивается в октябре 2025 г
Существует способ устранения ошибки с BitLocker Recovery, вызванной патчем KB5058379. Для этого необходимо в BIOS отключить Intel TXT / Trusted Execution и позволить KB5058379 завершить установку.
https://www.windowslatest.com/2025/05/15/windows-10-kb5058379-locks-pcs-bitlocker-recovery-triggered-on-boot-bsods/
KB5058379 — это обязательное обновление безопасности. Оно выпускается для всех пользователей (за некоторыми исключениями), включая предприятия и корпорации, и у тех, кто еще пользуется Windows 10, нет возможности отказаться от его установки. Можно лишь отложить инсталляцию, но, если не предпринять меры и не выключить службу обновлений, этот патч рано или поздно проникнет в систему.
Есть мнение, что таким незамысловатым способом Microsoft хочет заставить пользователей перейти на Windows 11, так как поддержка Windows 10 заканчивается в октябре 2025 г
Существует способ устранения ошибки с BitLocker Recovery, вызванной патчем KB5058379. Для этого необходимо в BIOS отключить Intel TXT / Trusted Execution и позволить KB5058379 завершить установку.
https://www.windowslatest.com/2025/05/15/windows-10-kb5058379-locks-pcs-bitlocker-recovery-triggered-on-boot-bsods/
Windows Latest
Windows 10 KB5058379 locks PCs, BitLocker Recovery triggered on boot, BSODs
Windows 10 KB5058379 is causing some PCs to boot into Windows Recovery and require BitLocker key. It's also causing BSODs.
🤡69😭6🤯5🤣4
В руководства по GTK для C и C# добавлены новые статьи
Для Си
Древовидное представление и TreeExpander
https://metanit.com/c/gtk/3.11.php
Выпадающий список DropDown
https://metanit.com/c/gtk/3.10.php
Для C#
Древовидное представление и TreeExpander
https://metanit.com/sharp/gtk/5.11.php
Выпадающий список DropDown
https://metanit.com/sharp/gtk/5.10.php
Для Си
Древовидное представление и TreeExpander
https://metanit.com/c/gtk/3.11.php
Выпадающий список DropDown
https://metanit.com/c/gtk/3.10.php
Для C#
Древовидное представление и TreeExpander
https://metanit.com/sharp/gtk/5.11.php
Выпадающий список DropDown
https://metanit.com/sharp/gtk/5.10.php
👍22🔥4🥰4👏1
Каждой бэкэнд-системе необходим способ обработки запросов и выполнения задач - шаблон выполнения. Это фундаментальное архитектурное решение, которое существенно влияет на производительность и масштабируемость вашего приложения.
Рассмотрим базовые шаблоны выполнения на бэкенде:
[1.] Поток на запрос (Thread-per-Request)
◾️ Каждый входящий запрос получает свой собственный поток.
◾️ Этот поток делает все для этого запроса - считывает данные, обрабатывает его, отправляет ответ.
+ Подходит для простых приложений или когда вам нужна сильная изоляция между запросами (чтобы один сбой не привел к остановке всего сервера).
- Создание большого количества потоков может потреблять значительный объем памяти и ресурсов ЦП, а накладные расходы на переключение контекста возрастают с увеличением количества потоков.
[2.] Модель Реактор, управляемая событиями (Reactor Pattern)
◾️ Один поток (или небольшая группа) обрабатывает все.
◾️ Он прослушивает события (например, входящие запросы, завершенные сетевые операции), а затем запускает обратные вызовы для их обработки.
+ Идеально подходит для обработки большого количества соединений (например, веб-серверов), легковесный и позволяет избежать накладных расходов на создание множества потоков.
- Если выполнение задачи занимает слишком много времени, это может заблокировать весь цикл событий и привести к тому, что сервер перестанет отвечать.
(Для решения этой проблемы и обеспечения оперативности можно использовать такие методы, как фрагментация, рабочие потоки или отдельные процессы.)
При этом надо понимать, что есть два типа задач:
1) Задачи, связанные с вводом-выводом (I/O-Bound Tasks), которые представляют Неблокируемый ввод-вывод (Non Blocking I/O)
◾️ Эти задачи (например, сетевые запросы, файловые операции) по своей сути асинхронны и хорошо подходят для моделей, управляемых событиями.
◾️ Цикл событий делегирует их базовой системе и переходит к другим задачам.
◾️ Когда операция I /O завершается, цикл событий получает уведомление и выполняет связанный обратный вызов.
◾️ Этот механизм гарантирует, что цикл событий остается отзывчивым даже при наличии множества одновременных операций I /O .
2) Задачи, связанные с процессором (CPU-Bound Tasks)
◾️ Эти задачи требуют сложных вычислений, выполнение которых может занять значительное время.
◾️ В чисто однопоточной модели, управляемой событиями, длительная задача, связанная с ЦП, может заблокировать цикл событий, задерживая выполнение других задач и потенциально приводя к тому, что сервер перестает отвечать.
[3.] Asynchronous => Coroutines, Promises, Futures
◾️ A way of writing code that allows a task to start and then continue with other work without waiting for that task to finish, often using callbacks, promises or async/await.
[3.] Асинхронное выполнение - это такие инструменты как корутины (Coroutines), промисы (Promises), Futures
◾️ Это шаблон написания кода, который позволяет запустить задачу, а затем продолжить другую работу, не дожидаясь завершения этой задачи, часто с использованием обратных вызовов, промисов или async/await.
При этом все асинхронные системы управляются событиями, поскольку асинхронные операции генерируют события (завершение, ошибка), которые обрабатываются циклом событий.
Однако, не все системы, управляемые событиями, обязательно являются асинхронными.
Простая система, управляемая событиями, по-прежнему может использовать блокирующий ввод-вывод, где цикл событий будет ожидать завершения каждого события, прежде чем переходить к следующему.
Рассмотрим базовые шаблоны выполнения на бэкенде:
[1.] Поток на запрос (Thread-per-Request)
◾️ Каждый входящий запрос получает свой собственный поток.
◾️ Этот поток делает все для этого запроса - считывает данные, обрабатывает его, отправляет ответ.
+ Подходит для простых приложений или когда вам нужна сильная изоляция между запросами (чтобы один сбой не привел к остановке всего сервера).
- Создание большого количества потоков может потреблять значительный объем памяти и ресурсов ЦП, а накладные расходы на переключение контекста возрастают с увеличением количества потоков.
[2.] Модель Реактор, управляемая событиями (Reactor Pattern)
◾️ Один поток (или небольшая группа) обрабатывает все.
◾️ Он прослушивает события (например, входящие запросы, завершенные сетевые операции), а затем запускает обратные вызовы для их обработки.
+ Идеально подходит для обработки большого количества соединений (например, веб-серверов), легковесный и позволяет избежать накладных расходов на создание множества потоков.
- Если выполнение задачи занимает слишком много времени, это может заблокировать весь цикл событий и привести к тому, что сервер перестанет отвечать.
(Для решения этой проблемы и обеспечения оперативности можно использовать такие методы, как фрагментация, рабочие потоки или отдельные процессы.)
При этом надо понимать, что есть два типа задач:
1) Задачи, связанные с вводом-выводом (I/O-Bound Tasks), которые представляют Неблокируемый ввод-вывод (Non Blocking I/O)
◾️ Эти задачи (например, сетевые запросы, файловые операции) по своей сути асинхронны и хорошо подходят для моделей, управляемых событиями.
◾️ Цикл событий делегирует их базовой системе и переходит к другим задачам.
◾️ Когда операция I /O завершается, цикл событий получает уведомление и выполняет связанный обратный вызов.
◾️ Этот механизм гарантирует, что цикл событий остается отзывчивым даже при наличии множества одновременных операций I /O .
2) Задачи, связанные с процессором (CPU-Bound Tasks)
◾️ Эти задачи требуют сложных вычислений, выполнение которых может занять значительное время.
◾️ В чисто однопоточной модели, управляемой событиями, длительная задача, связанная с ЦП, может заблокировать цикл событий, задерживая выполнение других задач и потенциально приводя к тому, что сервер перестает отвечать.
[3.] Asynchronous => Coroutines, Promises, Futures
◾️ A way of writing code that allows a task to start and then continue with other work without waiting for that task to finish, often using callbacks, promises or async/await.
[3.] Асинхронное выполнение - это такие инструменты как корутины (Coroutines), промисы (Promises), Futures
◾️ Это шаблон написания кода, который позволяет запустить задачу, а затем продолжить другую работу, не дожидаясь завершения этой задачи, часто с использованием обратных вызовов, промисов или async/await.
При этом все асинхронные системы управляются событиями, поскольку асинхронные операции генерируют события (завершение, ошибка), которые обрабатываются циклом событий.
Однако, не все системы, управляемые событиями, обязательно являются асинхронными.
Простая система, управляемая событиями, по-прежнему может использовать блокирующий ввод-вывод, где цикл событий будет ожидать завершения каждого события, прежде чем переходить к следующему.
👍10❤3👏1
This media is not supported in your browser
VIEW IN TELEGRAM
(Шаблоны выполнения на бекэнде - к предыдущему посту)
👍3🥰1👏1
88,6% популярных в России мобильных приложений имеют уязвимости
Специалисты по кибербезопасности обнаружили почти 30 тыс. уязвимостей в популярных в России мобильных приложениях, при этом количество критических угроз за год выросло вчетверо. Разработчики продолжают, например, хранить пароли в открытом виде и игнорировать базовые правила защиты данных.
В выборку попали более 1,6 тыс. приложений, многие из них входят в топ-100 по скачиванию пользователями в 18 тематических категориях на платформе Android. Как выяснили авторы исследования, 88,6% приложений содержат уязвимости «критического» или «высокого» уровня, что говорит о растущей опасности хакерских атак на мобильные приложения.
В качестве основных источников ошибок в разработке мобильных приложений ИБ-специалисты отмечают в первую очередь утечки памяти и ошибки конверсии данных. Также популярны архитектурные и логистические ошибки (ошибки в алгоритмах).
https://www.kommersant.ru/doc/7734423
Специалисты по кибербезопасности обнаружили почти 30 тыс. уязвимостей в популярных в России мобильных приложениях, при этом количество критических угроз за год выросло вчетверо. Разработчики продолжают, например, хранить пароли в открытом виде и игнорировать базовые правила защиты данных.
В выборку попали более 1,6 тыс. приложений, многие из них входят в топ-100 по скачиванию пользователями в 18 тематических категориях на платформе Android. Как выяснили авторы исследования, 88,6% приложений содержат уязвимости «критического» или «высокого» уровня, что говорит о растущей опасности хакерских атак на мобильные приложения.
В качестве основных источников ошибок в разработке мобильных приложений ИБ-специалисты отмечают в первую очередь утечки памяти и ошибки конверсии данных. Также популярны архитектурные и логистические ошибки (ошибки в алгоритмах).
https://www.kommersant.ru/doc/7734423
Коммерсантъ
Безопасность не скачивается
88,6% популярных в России мобильных приложений имеют уязвимости
😭9🤣4👍1
Системы Windows, которым уже несколько десятилетий, по-прежнему работают в поездах, принтерах и больницах.
В новом отчете BBC раскрываются некоторые из самых странных реальных случаев, когда устаревшие версии Windows по-прежнему работают на критически важных системах. Одним из примеров является больничный лифт в Нью-Йорке, замеченный в этом году, который все еще работает на Windows XP; финальная версия этой ОС потеряла расширенную поддержку от Microsoft в апреле 2019 года. Некоторые банкоматы работают еще на более старых версиях, работающих не только на Windows XP, но и на Windows NT, которая была выпущена еще в 1993 году.
Так, в 2024 г. немецкая транспортная компания Deutsche Bahn опубликовала список вакансий, требующих знания MS-DOS и Windows 3.11. Эти реликвии от мира ОС до сих пор питают системы отображения в нескольких поездах, опять же в основном потому, что их замена означала бы отказ от оборудования, которое в противном случае могло бы прослужить десятилетия. А еще есть система метрополитена Сан-Франциско Muni, которая до недавнего времени нуждалась в том, чтобы кто-то вставлял дискету в систему управления поездом на основе DOS , чтобы запустить ее каждое утро.
В Сан-Диего принтеры LightJet по-прежнему производят музейные фотоотпечатки с использованием Windows 2000. Джон Уоттс (John Watts), который следит за работоспособностью этих принтеров, утверждает, что переход на новую ОС выльется в расходы на десятки тысяч долларов, которые пойдут на приобретение новых лицензий.
https://www.techspot.com/news/107960-decades-old-windows-systems-running-trains-printers-hospitals.html
В новом отчете BBC раскрываются некоторые из самых странных реальных случаев, когда устаревшие версии Windows по-прежнему работают на критически важных системах. Одним из примеров является больничный лифт в Нью-Йорке, замеченный в этом году, который все еще работает на Windows XP; финальная версия этой ОС потеряла расширенную поддержку от Microsoft в апреле 2019 года. Некоторые банкоматы работают еще на более старых версиях, работающих не только на Windows XP, но и на Windows NT, которая была выпущена еще в 1993 году.
Так, в 2024 г. немецкая транспортная компания Deutsche Bahn опубликовала список вакансий, требующих знания MS-DOS и Windows 3.11. Эти реликвии от мира ОС до сих пор питают системы отображения в нескольких поездах, опять же в основном потому, что их замена означала бы отказ от оборудования, которое в противном случае могло бы прослужить десятилетия. А еще есть система метрополитена Сан-Франциско Muni, которая до недавнего времени нуждалась в том, чтобы кто-то вставлял дискету в систему управления поездом на основе DOS , чтобы запустить ее каждое утро.
В Сан-Диего принтеры LightJet по-прежнему производят музейные фотоотпечатки с использованием Windows 2000. Джон Уоттс (John Watts), который следит за работоспособностью этих принтеров, утверждает, что переход на новую ОС выльется в расходы на десятки тысяч долларов, которые пойдут на приобретение новых лицензий.
https://www.techspot.com/news/107960-decades-old-windows-systems-running-trains-printers-hospitals.html
TechSpot
Decades-old Windows systems are still running trains, printers, and hospitals
A new BBC report uncovers some of the strangest real-world cases where outdated versions of Windows are still powering critical systems. One example is a hospital elevator...
👍28❤10❤🔥4
Сторонники переписывания с C/C++ на Rust столкнулись с жестокой реальностью:
Проект rav1d (декодер AV1 на Rust) ищет разработчиков, кто за $20 тыс. сделает это решение таким же быстрым, как на C
В 2023 году проект Prossimo начал работу над rav1d, более безопасным высокопроизводительным декодером AV1, написанным на Rust. К сентябрю 2024 года проект rav1d был в основном завершён. Решение проходит все те же тесты, что и декодер dav1d (написанный на C), на котором основан rav1d.
«Есть только одна проблема — он не такой быстрый, как версия на C. Наш декодер rav1d на основе Rust в настоящее время примерно на 5% медленнее декодера dav1d на основе C (точная величина немного отличается в зависимости от бенчмарка, входных данных и платформы). Этой разницы достаточно, чтобы стать проблемой для потенциальных пользователей, и, честно говоря, она просто беспокоит нас.
Команда разработчиков упорно трудилась, чтобы добиться паритета производительности. Мы привлекли пару других подрядчиков, у которых есть опыт оптимизации таких вещей. Мы написали о проделанной нами работе по оптимизации. Однако мы все ещё не смогли достичь паритета производительности, и, честно говоря, мы не совсем уверены, что делать дальше.
После долгих раздумий над вариантами мы решили предложить вознаграждение в размере $20 тыс. за достижение производительности rav1d на уровне dav1d. Надеемся, что заинтересованные сторонние разработчики смогут помочь повысить производительность rav1d до необходимого уровня, а в идеале мы и сообщество Rust также узнаем что‑нибудь о том, как производительность Rust соотносится с версией решения на C», — заявили в Prossimo.
https://www.memorysafety.org/blog/rav1d-perf-bounty/
#rust #c++ #cpp
Проект rav1d (декодер AV1 на Rust) ищет разработчиков, кто за $20 тыс. сделает это решение таким же быстрым, как на C
В 2023 году проект Prossimo начал работу над rav1d, более безопасным высокопроизводительным декодером AV1, написанным на Rust. К сентябрю 2024 года проект rav1d был в основном завершён. Решение проходит все те же тесты, что и декодер dav1d (написанный на C), на котором основан rav1d.
«Есть только одна проблема — он не такой быстрый, как версия на C. Наш декодер rav1d на основе Rust в настоящее время примерно на 5% медленнее декодера dav1d на основе C (точная величина немного отличается в зависимости от бенчмарка, входных данных и платформы). Этой разницы достаточно, чтобы стать проблемой для потенциальных пользователей, и, честно говоря, она просто беспокоит нас.
Команда разработчиков упорно трудилась, чтобы добиться паритета производительности. Мы привлекли пару других подрядчиков, у которых есть опыт оптимизации таких вещей. Мы написали о проделанной нами работе по оптимизации. Однако мы все ещё не смогли достичь паритета производительности, и, честно говоря, мы не совсем уверены, что делать дальше.
После долгих раздумий над вариантами мы решили предложить вознаграждение в размере $20 тыс. за достижение производительности rav1d на уровне dav1d. Надеемся, что заинтересованные сторонние разработчики смогут помочь повысить производительность rav1d до необходимого уровня, а в идеале мы и сообщество Rust также узнаем что‑нибудь о том, как производительность Rust соотносится с версией решения на C», — заявили в Prossimo.
https://www.memorysafety.org/blog/rav1d-perf-bounty/
#rust #c++ #cpp
Prossimo
$20,000 rav1d AV1 Decoder Performance Bounty
In March of 2023 we announced that we were starting work on a safer high performance AV1 decoder called rav1d, written in Rust. We partnered with Immunant to do the engineering work. By September of 2024 rav1d was basically complete and we learned a lot during…
🤣58👍5🤯4😱3💊2🤡1😨1