Цель проекта — помочь разработчикам развить интуицию и мышление, ориентированные на производительность.
🔍 Основные темы проекта:
- Микробенчмарки: Измерение производительности базовых операций, таких как сложение целых чисел, с использованием различных подходов, включая inline-ассемблер.
- Параллелизм и сложность вычислений: Анализ производительности стандартных алгоритмов сортировки и их оптимизация с использованием различных техник.
- Рекурсия: Сравнение рекурсивных и итеративных реализаций алгоритмов, таких как QuickSort, с акцентом на производительность и использование стека.
- Оптимизация стандартных функций: Примеры ускорения стандартных функций, таких как std::sin, с использованием приближений и SIMD-инструкций.
- Работа с JSON: Эффективный парсинг JSON без лишних аллокаций памяти, использование альтернатив стандартным библиотекам.
GitHub
Hacker News
🛠️ Инструменты и технологии:
- Использование C++20 и современных компиляторов (GCC, Clang) для демонстрации новых возможностей языка.
- Интеграция с Google Benchmark для проведения точных измерений производительности.
- Примеры кода на CUDA, PTX и ассемблере для демонстрации низкоуровневой оптимизации.
- Использование сторонних библиотек, таких как fmt, range-v3, libunifex, cppcoro, liburing, oneTBB, ASIO, CUTLASS, CTRE, yyjson, Abseil, StringZilla и другие, для расширения функциональности и повышения производительности.
📚 Дополнительные ресурсы:
Проект является частью серии "Less Slow", которая также включает реализации на Rust и Python.
Блог автора содержит подробные статьи по темам, затронутым в проекте: ashvardanian.com/tags/less-slow.
Если вы хотите глубже понять, как писать эффективный код и избегать распространённых ошибок, less_slow.cpp станет отличным практическим пособием.
▪Github
▪Rust
▪Python.
@cpluspluc
>>Click here to continue<<
