diff --git a/new_version/direct_hash/about.md b/new_version/direct_hash/about.md new file mode 100644 index 0000000..5b46394 --- /dev/null +++ b/new_version/direct_hash/about.md @@ -0,0 +1,7 @@ +В этой реалзации попытка хранить хэш функции напрямую, без кодирования + +В теории это должно увеличить размер set-строки ~x2, но + +- позволить индексироваться по элементам хэша +- кратно сократить время на дешифровку +- кэшировать можно соответствия индекс - значение, чтобы не работать с битами (может и не стоит того) diff --git a/new_version/main_ideas.md b/new_version/main_ideas.md index 170f6b4..cf6b6d6 100644 --- a/new_version/main_ideas.md +++ b/new_version/main_ideas.md @@ -2,43 +2,7 @@ ## Roaring map -По крайней мере в примитивном варианте скорость создания остаётся примерно прежней, скорость сравнения становится кратно меньше - -Также кратно выше становится сама длина строки - -```text -symbols=1000 required=500 bpp=32 -implementation set_chars format -set9 3994 golomb -bitmap 19924 R1 -``` - -```text -operation set9 bitmap bitmap/set9 -set_fini only 266.24 us 202.89 us 0.76x -new+add+fini 1696.05 us 1600.44 us 0.94x -rpmsetcmp cold 293.87 us 1321.17 us 4.50x -rpmsetcmp warm 5.24 us 399.20 us 76.14x -``` - -### Использование zstd - -```text -symbols=1000 required=500 bpp=32 -implementation set_chars format -set9 3994 golomb -bitmap 14126 R2 -``` - -без zstd строка становится ~40% длинее - -```text -operation set9 bitmap bitmap/set9 -set_fini only 171.84 us 314.20 us 1.83x -new+add+fini 1185.33 us 1726.32 us 1.46x -rpmsetcmp cold 285.04 us 1412.84 us 4.96x -rpmsetcmp warm 4.82 us 490.94 us 101.86x -``` +- описание [здесь](new_version/roaring_bitmap/about.md) ## хранить сразу расшифрованный set @@ -73,3 +37,7 @@ rpmsetcmp warm 4.82 us 490.94 us 101.86x - если условно "отсортировать" массив provides/requires, можно получить лучшую работу с кжшом - (надеюсь, что под капотом оно уже и так это делает, но проверить стоит) + +``` + +``` diff --git a/new_version/roaring_bitmap/about.md b/new_version/roaring_bitmap/about.md index 6c466cc..3e86fc8 100644 --- a/new_version/roaring_bitmap/about.md +++ b/new_version/roaring_bitmap/about.md @@ -1,3 +1,39 @@ попытка воссоздания алгоритма с roaring bitmap Даже эффективней в создании, но проигрывает в дешифровке (сравнении) и занимаемому месту + +Кратно выше становится сама длина строки + +```text +symbols=1000 required=500 bpp=32 +implementation set_chars format +set9 3994 golomb +bitmap 19924 R1 +``` + +```text +operation set9 bitmap bitmap/set9 +set_fini only 266.24 us 202.89 us 0.76x +new+add+fini 1696.05 us 1600.44 us 0.94x +rpmsetcmp cold 293.87 us 1321.17 us 4.50x +rpmsetcmp warm 5.24 us 399.20 us 76.14x +``` + +### Использование zstd + +```text +symbols=1000 required=500 bpp=32 +implementation set_chars format +set9 3994 golomb +bitmap 14126 R2 +``` + +без zstd строка становится ~40% длинее + +```text +operation set9 bitmap bitmap/set9 +set_fini only 171.84 us 314.20 us 1.83x +new+add+fini 1185.33 us 1726.32 us 1.46x +rpmsetcmp cold 285.04 us 1412.84 us 4.96x +rpmsetcmp warm 4.82 us 490.94 us 101.86x +```