Выложили моё выступление на CppCon про Making Out the Most of Your Compiler



https://www.youtube.com/watch?v=tckHl8M3VXM



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



1. Выкручиваем в clang инлайнинг с помощью -mllvm -inline-threshold=1000

2. Гоняем бенчмарки

3. Смотрим на профили

4. Делаем always_inline на функции, инлайн которых соптимизировал код

5. Ускоряем бенчмарки

6. Репортим копиляторам

7. Не сильно замедляем время сборки



Вуаля: патчик на 30 строк и зеленющие бенчмарки https://github.com/ClickHouse/ClickHouse/pull/34544

На картинке одна часть бенчмарков ClickHouse, надо ещё остальные ускорившиеся от инлайнинга посмотреть и тогда зелёных будет в 2 раза больше, но где найти время, блин?