Библиотека C/C++ разработчика | cpp, boost, qt
21.1K subscribers
1.53K photos
37 videos
16 files
3.71K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
Чек-лист: Оптимизация производительности C++ программ

Правильные приемы оптимизации могут значительно ускорить ваш C++ код без ущерба для читаемости и поддерживаемости. Используйте этот чек-лист, чтобы ваши программы работали максимально эффективно.

🎯 Управление памятью

✓ Предпочитайте умные указатели (std::unique_ptr, std::shared_ptr) сырым
✓ Используйте move-семантику для избежания ненужного копирования
✓ Размещайте часто используемые объекты рядом для лучшего кэширования
✓ Применяйте пул объектов для частого создания/уничтожения однотипных объектов

🎯 Эффективное использование STL

✓ Используйте резервирование памяти (reserve()) в контейнерах
✓ Выбирайте подходящие алгоритмы из вместо собственных реализаций
✓ Применяйте emplace_back() вместо push_back() для конструирования на месте
✓ Используйте соответствующие контейнеры для конкретных задач (unordered_map для хэш-таблиц)

🎯 Compiler Optimizations

✓ Компилируйте с флагами оптимизации (-O2, -O3)
✓ Используйте профилировщики (gprof, valgrind) для выявления узких мест
✓ Применяйте встроенные функции (inline) для часто вызываемых небольших методов
✓ Проверяйте выравнивание данных для SIMD-инструкций

🎯 Многопоточное программирование

✓ Используйте std::async и std::future для асинхронных операций
✓ Минимизируйте блокировки и предпочитайте атомарные операции
✓ Правильно разделяйте данные между потоками для уменьшения конкуренции
✓ Применяйте пул потоков для обработки множества мелких задач

Как измерить результаты: используйте бенчмарки для измерения производительности до и после оптимизации, применяйте инструменты профилирования для отслеживания улучшений.

🤫 Оптимизация с использованием SIMD-инструкций и правильной обработки кэша процессора может ускорить критические участки кода в 4-10 раз!
⚡️Истовый инженер теперь в Telegram!

В канале публикуют полезные статьи для инженеров и программистов со всех направлений. Вот что мы лично прочитали и где поставил лайк:

— Не тонуть в горутине: особенности реализации одной и той же задачи на С и Go (читать)
— Успеть за 34 миллисекунды: оптимизируем код на С (читать)
— Не Python единым: нейросеть на С++ для распознавания лиц на фото (читать)
— Обзор книги «С++ 20 в деталях»: доступно, но не для джунов (читать)

📝 и ещё 100+ полезных статей, лекций, подкастов и кейсов от практиков

Подписываемся, чтобы не потерять полезный канал @ultimate_engineer