
sizeof(Mutex<()>) в Rust 1.61 на Linux был 40 байт. В Rust 1.62 он стал 5 (точнее, 8 с учётом выравнивания, но базовый overhead 5).

sizeof(Mutex<()>) в Rust 1.61 на Linux был 40 байт. В Rust 1.62 он стал 5 (точнее, 8 с учётом выравнивания, но базовый overhead 5).

Для того, что бы ответить на этот вопрос, придется немного погрузиться на уровень операционной системы и на аппаратный уровень. Не претендуя на абсолютную точность в деталях, надеюсь, что смогу донести общее представление.
Полгода я использовал Claude, GPT и Cursor как основной инструмент для написания Rust-кода в проде. Не как «помощник для бойлерплейта», а как полноценного второго разработчика на монолите примерно в 80 тысяч строк (бэкенд обработки потоковых данных, tokio, sqlx, немного unsafe в hot path). Доля сгенерированного кода в коммитах последних шести месяцев около 40%, остальное это правки, рефакторинг и места, куда модель я не пускаю.
Примечание переводчика:
State Machine, конечный автомат это преобразованный async метод. Компилятор преобразует метод в тип, реализующий конечный автомат (наследуется от IAsyncStateMachine). Благодаря такому механизму, при достижении первого оператора await поток, начавший метод, может возвращаться без «физического» оператора return метода, тем самым, продолжая выполнение основной программы.
В математике, конечный автомат это некоторая система, которая может находится только в одном состоянии.
(Возможные) состояния конечного автомата:
Лёгкий cron, интервалы и очередь фоновых задач для Ruby-приложений на Async — без Redis, без Postgres, без отдельного процесса.
История началась с прозаичного: у меня было Falcon-приложение на Async, и в нём накопились задачи, которые надо было выполнять где-то рядом. Раз в минуту синхронизировать каталог. В 3:00 — отчёт. На действие пользователя — отправить письмо «через 5 минут после регистрации, если он не подтвердил почту».
Классический набор. Классический ответ — Sidekiq. Я открыл Gemfile, набрал gem "sidekiq"Читать полностью »
Действующие лица:
МП (Молодой Пол) — год в индустрии, глаза горят, в голове свежий Clean Architecture. Верит, что облако бесконечно, а new — почти как комментарий: написал и забыл.
ДП (Дядя Паша) — 47 лет, седая борода, архитектор. Первый продакшен — в 12: школьная программа по астрономии, которая мерила знания и ломала нервы отличникам. Сейчас — терраса в Палермо, бокал холодного Мальбек, на экране — метрики и паузы GC.
Диалог:
Привет! Хочу рассказать о своей новой библиотеке context-async-sqlalchemy, которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.
Сначала кратко пройдемся по теории из чего состоит sqlalchemy и как ее происходит интеграция в python приложение. Посмотрим какие есть нюансы и как context-async-sqlalchemy помогает вам удобно работать. Важно что речь идет только об async python.
sqlalchemy предоставляет EngineЧитать полностью »
Представь, что ты строишь огромный замок из LEGO. Это твоя игра в Unity! Ты хочешь, чтобы в замке двигались рыцари, летали драконы, а еще играла музыка – и всё это одновременно!
Когда ты говоришь компьютеру, что делать, ты даешь ему "задачи". Например:
"Нарисуй рыцаря!"
"Подожди 1 секунду."
"Запусти музыку!"