more plans
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
В этой реалзации попытка хранить хэш функции напрямую, без кодирования
|
||||
|
||||
В теории это должно увеличить размер set-строки ~x2, но
|
||||
|
||||
- позволить индексироваться по элементам хэша
|
||||
- кратно сократить время на дешифровку
|
||||
- кэшировать можно соответствия индекс - значение, чтобы не работать с битами (может и не стоит того)
|
||||
@@ -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, можно получить лучшую работу с кжшом
|
||||
- (надеюсь, что под капотом оно уже и так это делает, но проверить стоит)
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user