Pull to refresh

Comments 5

и даже эти показатели достижимы только в коде, который обрабатывает огромные массивы числовых данных

а разве на больших циклах бранч-предиктор не должен устранять оверхед от проверок границ массива?

Кэш миссы устранит, но вообще проверка и сам переход же останутся.

К сожалению это всё хорошо работает в случае отдельных небольших функций. Если же попытаться написать простейший стек поверх Vec, то там проверки границ остаются повсюду

Что ещё более удивительно - есть замеряемая разница между реализацией с индексами(через get_unchecked) и откровенно ужасной и дырявой версией на указателях ( в пользу последней )

А разве последний пример не проще будет написать в таком виде?

use std::iter::zip;
for (l,r) in zip(input, fibonacci) {
  if l != r {return false;}
}
true

Тогда уже так:


zip(input, fibonacci).all(|(l, r)| l == r)
Sign up to leave a comment.