
Эта статья — краткая заметка о двух связанных друг с другом эмпирических правилах.
Поднимайте If вверх
Если внутри функции есть условие if, то подумайте, нельзя ли его переместить в вызывающую сторону:
Читать полностью »

Эта статья — краткая заметка о двух связанных друг с другом эмпирических правилах.
Если внутри функции есть условие if, то подумайте, нельзя ли его переместить в вызывающую сторону:
Читать полностью »
Разбираемся, в каких сценариях «Аврора» уже превосходит Android: безопасность, кастомизация, импортозамещение — и где системе ещё есть куда расти.


Enum — одна из самых популярных фич Rust. Тип enum может иметь одно из значений в заданном множестве вариантов.
/// Foo имеет значение или 32-битного integer, или символа.
enum Foo {
Int(u32),
Char(char),
}
Значениями типа FooЧитать полностью »
Пожалуйста не относитесь к этой статье как к утверждению в реализации той или иной сигнатуры для внутрянки хеш-мапы, это лишь мой взгляд на возможность использовать разные интересные фичи из C++20 для реализации популярной структуры данных.
Для нормального усвоения этой статьи необходимо понимать, как работает стандартная реализация хеш-мапы (язык в целом не важен, но мы же здесь все собрались только ради одного..).
Не будем тянуть, перейдем к реализации хеш-мапы с использованием «приколюх» из C++20!
Я написал на C# консольный клон Wordle, но попытался сделать двоичный файл максимально крошечным.
Я взял популярную игру Wordle с такими правилами:
Меня зовут Ибрагим, и я уже много лет занимаюсь программированием на C++. За это время мне довелось поработать с высоконагруженными системами, игровыми движками и даже embedded-проектами! Сегодня я хочу рассказать об опыте оптимизации, применениях которого я сталкивался на практике. Мы порассуждаем о кэш-локальности, кастомных аллокаторах, многопоточности, и как они часто остаются не замеченными в литературе. Тем не менее, они принципиально важны при нашем стремлении писать быстрый код.

Сцена этого конкретного преступления может показаться неправдоподобной: аномалия производительности, возникающая в простейшем машинном коде. На самом деле, его даже можно назвать чрезмерно упрощённым, ведь он не выполняет никакой полезной работы. Он нужен лишь для того, чтобы продемонстрировать поведение оборудования в образовательных целях.

Компиляторы всегда были окружены аурой загадочности и магии. Из-за этого многие из нас верят, что они делают то, чего они не делают, или что они не делают того, что делают1
Эта статья станет своего рода продолжением статьи о компиляторных оптимизациях. Я перечислю некоторые заблуждения, с которыми я сталкивался за долгие годы (многие из них были моими), и постараюсь развеять все мифы. Заранее скажу, что эта статья посвящена только крупным популярным компиляторам общего назначения наподобие LLVM, GCC и ICX. Некоторые из сделанных здесь утверждений не относятся, например, к специализированным компиляторам2, а также к мелким и средним компиляторам3.Читать полностью »

Современное оборудование невероятно быстрое. M1 Max, на котором я пишу эту статью, работает с частотой 3,2 ГГц. То есть 3,2 МИЛЛИАРДА тактов в секундуЧитать полностью »