Size: a a a

2020 October 19

👑️

👑OGURCHIK🖤 ️ in ТП
S B
А это как раз к тому, что @ogurchinskiy хештаблица из коробки работает далеко неидеально и заточена под среднее на рынке.
😐
источник

👑️

👑OGURCHIK🖤 ️ in ТП
мне хватает
источник

SB

S B in ТП
👑OGURCHIK🖤 ️
мне хватает
Это уже другой разговор.
источник

👑️

👑OGURCHIK🖤 ️ in ТП
все что не хеш
источник

👑️

👑OGURCHIK🖤 ️ in ТП
все шифрую
источник

👑️

👑OGURCHIK🖤 ️ in ТП
осенссл + аес 256 с солью
источник

👑️

👑OGURCHIK🖤 ️ in ТП
а хешей хватает
источник

SB

S B in ТП
👑OGURCHIK🖤 ️
мне хватает
Дело не в том, сам по себе хеш это не все, речь же о том, чтоб твоя хештаблица перформила годно.
источник

ИБ

Илья Билаш in ТП
S B
В бакете у тебя будет 1/N объектов от общего их количества, где N это количество бакетов при условии, что хеширование прям идеально равномерное.
Ща глянул код
Судя по всему - количество бакетов всегда кратно 16
Даже не так, количество бакетов всегда увеличивается в 2 раза от начального значения, по дефолту 16, т.е. 16 32 64 128 и т.д.
Да и равномерного хеширования все равно не бывает
Плюс я пока не понял, когда именно количество бакетов растет (с телефона не оч удобно код читать, когда его много)
И в принципе,сам код ресайза конечно достаточно объемный, но он не выглядит слишком медленным. В общем, как всегда - все зависит от конкретных данных. Но раз решили оптимизировать именно поиск внутри бакета, значит в среднем по больнице основная проблема была там.
источник

SB

S B in ТП
Илья Билаш
Ща глянул код
Судя по всему - количество бакетов всегда кратно 16
Даже не так, количество бакетов всегда увеличивается в 2 раза от начального значения, по дефолту 16, т.е. 16 32 64 128 и т.д.
Да и равномерного хеширования все равно не бывает
Плюс я пока не понял, когда именно количество бакетов растет (с телефона не оч удобно код читать, когда его много)
И в принципе,сам код ресайза конечно достаточно объемный, но он не выглядит слишком медленным. В общем, как всегда - все зависит от конкретных данных. Но раз решили оптимизировать именно поиск внутри бакета, значит в среднем по больнице основная проблема была там.
Нет, просто оптимизировать ресацзинг нельзя, я поэтому и спросил об этом. А респцзинг происходит обычно по триггеру типа «переполнение». Переполнение конкретного бакета.
источник

SB

S B in ТП
Типа, если больше тысячи элементов, то пора ресайзить.
источник

SB

S B in ТП
Но гораздо лучше, конечно, заранее попросить у рантайма сразу 64 бакета, а то и 128. И жить счастливо.
источник

SB

S B in ТП
Тут уже замер обычно помогает.
источник

ИБ

Илья Билаш in ТП
S B
Нет, просто оптимизировать ресацзинг нельзя, я поэтому и спросил об этом. А респцзинг происходит обычно по триггеру типа «переполнение». Переполнение конкретного бакета.
По джавадоку не до конца понятно, но вроде как таки не по конкретному бакету, а по общему количеству объектов.
источник

SB

S B in ТП
Илья Билаш
По джавадоку не до конца понятно, но вроде как таки не по конкретному бакету, а по общему количеству объектов.
Это тот же принцип, по переполнению, но метрика другая, тут уже дрочит каждый как любит.
источник

ИБ

Илья Билаш in ТП
S B
Но гораздо лучше, конечно, заранее попросить у рантайма сразу 64 бакета, а то и 128. И жить счастливо.
Javadoc с тобой в корне не согласен

Thus, it's very important not to set the initial
* capacity too high (or the load factor too low) if iteration performance is
* important.
источник

👑️

👑OGURCHIK🖤 ️ in ТП
😃
источник

SB

S B in ТП
Илья Билаш
Javadoc с тобой в корне не согласен

Thus, it's very important not to set the initial
* capacity too high (or the load factor too low) if iteration performance is
* important.
Ты почитай внимательно.
источник

SB

S B in ТП
Что там написано.
источник

SB

S B in ТП
Илья Билаш
Javadoc с тобой в корне не согласен

Thus, it's very important not to set the initial
* capacity too high (or the load factor too low) if iteration performance is
* important.
Iteration.
источник