From ab619909d9b1340afc6e490726fa132d65b13950 Mon Sep 17 00:00:00 2001 From: Dmitrii Krosh Date: Thu, 2 Jul 2026 00:08:54 +0300 Subject: [PATCH] about hash --- .gitignore | 3 +++ for_me.md | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 for_me.md diff --git a/.gitignore b/.gitignore index 83972fa..fc591e2 100644 --- a/.gitignore +++ b/.gitignore @@ -216,3 +216,6 @@ __marimo__/ # Streamlit .streamlit/secrets.toml + +alt-rpm +set.c diff --git a/for_me.md b/for_me.md new file mode 100644 index 0000000..397eafe --- /dev/null +++ b/for_me.md @@ -0,0 +1,22 @@ +# Notes + +## Hash + +в данный момент используется Jenkins OAAT. Считается чуть устаревшим(check), главным аналогом является: + +https://github.com/cyan4973/xxhash + +xxHash64 (XXH64): относительно простая имплементация на си, хвалят за скорость, 64 бит, параллель + +необходимы тесты и графики: + +1. насколько быстрее/медленнее +2. коллизии на наборе букв в сравнении с рандомными данными +3. коллизии у первого и второго хэшей между собой + +> В XXH3 внутренний цикл, который оптимально обрабатывается векторизацией. Благодаря этому функция использует аппаратную поддержку на наборах инструкций SSE2, AVX2 и NEON. Производительность зависит от комилятора. Неожиданно оказалось, что версия, скомпилированная clang, намного превосходит остальные. Ян Колле даже подумал, что производительность хеш-функции здесь превысит пропускную способность памяти. Этой версии на графике соответствует пунктирная линия. + +есть ещё cityhash от гугла, но она c++ + +в случае XXH64 строк кода ~200, можно вставить в файл +в случае XXH3 строк кода ~2к, стоит использовать библиотеку напрямую, бессмысленно