Comments 5
и даже эти показатели достижимы только в коде, который обрабатывает огромные массивы числовых данных
а разве на больших циклах бранч-предиктор не должен устранять оверхед от проверок границ массива?
К сожалению это всё хорошо работает в случае отдельных небольших функций. Если же попытаться написать простейший стек поверх Vec, то там проверки границ остаются повсюду
Что ещё более удивительно - есть замеряемая разница между реализацией с индексами(через get_unchecked) и откровенно ужасной и дырявой версией на указателях ( в пользу последней )
А разве последний пример не проще будет написать в таком виде?
use std::iter::zip;
for (l,r) in zip(input, fibonacci) {
if l != r {return false;}
}
true
Sign up to leave a comment.
Как избавиться от проверок выхода за границы при доступе по индексу в Rust (без unsafe!). Часть 1