История изменений
Исправление shdown, (текущая версия) :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Там нам нужно проверять, что байт — не ноль, потому что, если он ноль, то мы можем упасть, прочитав следующий байт.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в 2+ два раза.
Попробуйте обогнать хоть какую-то из них (с той же семантикой) на расте. Там bottleneck в умножении.
Исправление shdown, :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Там нам нужно проверять, что байт — не ноль, потому что, если он ноль, то мы можем упасть, прочитав следующий байт.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в 2+ два раза.
Попробуйте обогнать хоть какую-то из них на расте. Там bottleneck в умножении.
Исправление shdown, :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Там нам нужно проверять, что байт — не ноль, потому что, если он ноль, то мы можем упасть, прочитав следующий байт.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в 2+ два раза.
Попробуйте обогнать хоть какую-то из них на расте.
Исправление shdown, :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Там нам нужно проверять, что байт — не ноль, потому что, если он ноль, то мы можем упасть, прочитав следующий байт.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в 2+ два раза.
Исправление shdown, :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Там нам нужно проверять, что байт — не ноль, потому что, если он ноль, то мы можем упасть, прочитав следующий байт.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в два раза.
Исходная версия shdown, :
fn lor_jjhash(src: &[u8]) -> u32 {
jjhash_s — это функция для сишных строк, а не для pointer-and-length.
Для pointer-and-length предназначена jjhash_b.
jjhash_b обгоняет jjhash_s в два раза.