Size: a a a

2020 December 02

E

EgorBo in pro.net
но у него нет строгих требований к колизиям
источник

E

EgorBo in pro.net
дикшнари его выкидывает нахуй как только встречает пару коллизий на этом алгоритме
источник

E

EgorBo in pro.net
и переключается на дефолт
источник

E

EgorBo in pro.net
вообще по хорошему тут можно было бы придумать что-то на симдах
источник

E

EgorBo in pro.net
для словаря
источник

RB

Roman Bukin in pro.net
EgorBo
вообще по хорошему тут можно было бы придумать что-то на симдах
ну это надо для 2ух симдов сразу придумывать
источник

RB

Roman Bukin in pro.net
x86, arm
источник

E

EgorBo in pro.net
там всё похоже
источник

RB

Roman Bukin in pro.net
EgorBo
там всё похоже
это да
источник

RB

Roman Bukin in pro.net
ну и фолбэк для be
источник

E

EgorBo in pro.net
хотя вот этот трик с быстрым хэшкодом для строк собсно и сломал словарь для русских символов -_-
источник

E

EgorBo in pro.net
у любой байтоебной оптимизации есть цена
источник

RB

Roman Bukin in pro.net
EgorBo
хотя вот этот трик с быстрым хэшкодом для строк собсно и сломал словарь для русских символов -_-
источник

E

EgorBo in pro.net
потенциально поломать прод
источник

AH

Ayrat Hudaygulov in pro.net
у меня тут как раз стоит вопрос быстрого сравнения строк. Предположим есть 5 известных строк (хедеры), которые надо вайтлистить

У нас есть функция вида: string -> bool которая должна ответить входит ли входящая строка в вайтлист.
Есть 3 реализации:
на хешсете, в который подается StringOrdinal компаратор
на свич кейсе, который свичит по длине входящей строки в начале, и если подходит, делает стринг.компаре ординалс
и то же самое на свич експрешне (должно быть то же самое)

В итоге
хешсет - 40нс
свич кейс 4.2нс
свич експрешн - 4.6нс

код и бенчи показать не могу, чот ремоут тачка отвалилась -_-

Вопрос - какой самый быстрый способ узнать входит ли строка в некий ограниченный пул строк?
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
у меня тут как раз стоит вопрос быстрого сравнения строк. Предположим есть 5 известных строк (хедеры), которые надо вайтлистить

У нас есть функция вида: string -> bool которая должна ответить входит ли входящая строка в вайтлист.
Есть 3 реализации:
на хешсете, в который подается StringOrdinal компаратор
на свич кейсе, который свичит по длине входящей строки в начале, и если подходит, делает стринг.компаре ординалс
и то же самое на свич експрешне (должно быть то же самое)

В итоге
хешсет - 40нс
свич кейс 4.2нс
свич експрешн - 4.6нс

код и бенчи показать не могу, чот ремоут тачка отвалилась -_-

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

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
а пул строк заранее задан и постоянен?
да
источник

IC

Ilya Chernoudov in pro.net
то есть это константы?
источник

AH

Ayrat Hudaygulov in pro.net
о да
источник

IC

Ilya Chernoudov in pro.net
если у тебя 5 строк найди позицию где разные символы и сравнивай по ним
источник