Traffic Money
Traffic Money
@TrafficMoneyPro

В C++ есть классический баг, который убивает не код, а P&L команды: алиасинг памяти.

В C++ есть классический баг, который убивает не код, а P&L команды: алиасинг памяти.

Снаружи всё выглядит нормально — компилятор, оптимизации, быстрый бинарь. А внутри он может решить, что два указателя не пересекаются, и перестроить логику так, что вы получаете undefined behavior вместо ожидаемого результата.

Что важно:
— aliasing rules в C++ исторически очень жёсткие
— нарушение этих правил часто не падает сразу, а стреляет в проде через недели
— попытки “починить потом” обычно упираются в ABI, оптимизации и старый код
— комитет уже не первый год крутит тему, но простого универсального решения нет

Я слышал, что именно такие вещи чаще всего ломают не junior-код, а “боевые” системы после очередного апдейта компилятора. 😐

Для тех, кто живёт на performance:
1) проверяйте места с raw pointers и кастами
2) не верьте, что “у меня всегда работало”
3) любые микрооптимизации без понимания aliasing могут стоить дороже, чем экономят

Если у вас в продукте есть C++-ядро, это не теоретическая тема. Это вопрос: вы ускоряете систему или закладываете мину под релиз.
Этот пост опубликован в Telegram-канале Traffic Money. Подписаться можно по ссылке: @TrafficMoneyPro.
traffic

Свежие посты в категории «Traffic Sources»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.