и посмотреть медиа
BookFlow - книги программирование
и посмотреть медиа
Лекции, книги, видеоуроки и доклады по программированию и технологиям.
Лекции, книги, видеоуроки и доклады по программированию и технологиям.
Канал Программирование {BookFlow} собирает лучшие лекции, книги по программированию, видеоуроки и доклады с IT-конференций. Новости технологий и материалы для самообучения в Telegram.
🔥 Оптимизация целочисленного деления: Clang vs GCC vs MSVC Автор блога NukeTheBees решил проверить, как разные компиляторы оптимизируют преобразование 1D-индекса в 3D-координаты сетки. Эта частая задача требует вычисления как частного, так и остатка от деления. Архитектура x86 позволяет сделать это максимально эффективно - всего двумя инструкциями idiv (она одновременно вычисляет и частное, и остаток, помещая их в разные регистры). Автор протестировал два подхода на C++: 1️⃣ Стандартные операторы / и % 2️⃣ Использование функции std::div 📊 Что показали компиляторы? 🔹 Вариант с операторами (/ и %): 🏆 Clang сгенерировал идеальный код: всего 2 инструкции idiv и никаких лишних обращений к памяти. 🥈 GCC тоже справился за 2 idiv, но зачем-то скинул промежуточные результаты в стек перед возвратом. ❌ MSVC оплошал и выдал избыточную третью инструкцию деления при вычислении y. 🔹 Вариант с std::div (в надежде помочь компилятору): ✅ MSVC резко исправился, заинлайнил вызовы и выдал те самые оптимальные 2 idiv. ❌ Зато Clang и GCC внезапно отказались инлайнить std::div! В итоге они сгенерировали настоящие вызовы функций (call div), что из-за накладных расходов делает этот код медленнее первого варианта. 💡Ни один из подходов на C++ не смог заставить все три компилятора выдать идеальный машинный код. Поэтому для критически важных участков производительности не стоит слепо доверять компилятору - всегда заглядывайте в сгенерированный ассемблер (например, через Compiler Explorer). 🔗 Подробный разбор ассемблерного кода читайте в статье: Ссылка скрыта ♻️ Сделай репост, чтобы помочь другим. 📲 Мы в MAX 👉 @Bookflow
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!
Telegram channel with beautiful photos and videos in an aesthetic style.
Yyy channel with memes, videos and light humor to cheer up Telegram.
A channel with a cute flashlight for training in the hall. Energetic bits, ideal for motivation and sports. Funk tracks for a mood boost.