Полный текст

Если if вас замедляют, откажитесь от нихКлассический if заставляет блок предсказания гадать. При случайном распределении чисел процессор всё чаще ошибается. Конвейер сбрасывается, теряя ценные такты на повторном исполнении.Отказ от условных операторов восстанавливает производительность. Вместо ветвления применяется безусловное сохранение в память и условный инкремент — cinc для ARM или setle для x86_64. Линейный поток команд загружает ресурсы полностью, а скорость работы на Apple M1 возрастает в десять раз.