Процессор в вашем компьютере угадывает будущее. И ошибается в 5% случаев
В прошлую пятницу я объяснял джуну, почему его код на отсортированном массиве работает в шесть раз быстрее, чем на неотсортированном. Тот же массив, тот же алгоритм, и те же данные. Просто в другом порядке. Джун смотрел на меня как на сумасшедшего и, честно говоря, я его понимаю. Потому что ответ звучит безумно: процессор внутри вашего ноутбука постоянно пытается предсказать будущее. Буквально. Он гадает, какая ветка if выполнится ещё до того, как условие будет вычислено. И на отсортированных данных ему угадывать проще. Ну, давайте разбираться.
https://habr.com/ru/articles/1013098/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1013098
#branch_prediction #предсказание_ветвлений #оптимизация_кода #cpu #производительность #алгоритмы #архитектура_процессоров #spectre #конвейер
