Size: a a a

2020 October 02

MV

Maxim Voloshin in pro.cxx
Это же бенчмарки
источник

MV

Maxim Voloshin in pro.cxx
Гугл говорит они бы кучу денег сэкономили, сломай комитет ABI, для них ~10% перфоманса это много в долларах
источник

PS

Pavel Samolysov in pro.cxx
Не читал еще, спасибо за наводку
источник

PS

Pavel Samolysov in pro.cxx
У них наверное свои хэши есть? В abseil есть хэши на основе B-деревьев
источник

MV

Maxim Voloshin in pro.cxx
Да у них допилено
источник

MV

Maxim Voloshin in pro.cxx
источник

MV

Maxim Voloshin in pro.cxx
abseil там тоже используется
источник

PS

Pavel Samolysov in pro.cxx
Да, круто, они там и фолли сравнивают похоже
источник

IZ

Ilia Zviagin in pro.cxx
In Dev
Подскажите, использование std::error_code в качестве возвращаемого значения функции адекватный подход, в плане скорости работы? Слышал, что там не все так просто (совсем не то же самое, что инт вернуть)
Вряд ли такое нужно внутри программы. Лучше использовать исключения.
источник

AG

Alexander Galagutski... in pro.cxx
Calling Convention раздел самый интересный, не понятно почему именно так ABI построено
источник

I

Ioann_V in pro.cxx
Pavel Samolysov
Да, круто, они там и фолли сравнивают похоже
Как бы в std бакетные хеши - что может быть медленнее?
источник

I

Ioann_V in pro.cxx
А вот в других ХТ, могут использовать и Адресацию, открытую, конечно.
источник

MV

Maxim Voloshin in pro.cxx
Тут еще проблема в хэш функции, а не только в организации. Если хэш считается медленно какая разница по бакету искать коллизии или тыкаться по адресам?
источник

I

Ioann_V in pro.cxx
Конечно разница есть. Грамотная организаця ХТ даст больший прирост, чем АБИ обращения к функции вычисления Хеша. Да, от последнего тоже много чего зависит, но все же, от самой ХТ зависит, как мне кажется +- столько же. Точнее, даже больше. Все же, хеши типа FNA 3, MurMur - штуки доступные.
источник

MV

Maxim Voloshin in pro.cxx
кстати, лучше функция - меньше коллизий -> меньше разница между бакетами и адресацией
источник

IZ

Ilia Zviagin in pro.cxx
Maxim Voloshin
кстати, лучше функция - меньше коллизий -> меньше разница между бакетами и адресацией
Меньше коллизии - больше бакетов, больше расход памяти..
источник

I

Ioann_V in pro.cxx
Я думаю, что открытая апдресация победит бакеты, при идеальной ХФ. Бакеты это про бакеты, в узлах контейнера, а Адресация - про линейную память. Сегодня ХТ, это конечно все еще Маст Хев, но Перфект Хешинг это не про всех и не про все, в случае коллизий, конечно. Есть другие контейнеры, которые позволяют в тех или иных случаях получить +к перфомансу. Hat trees, for example. А еще в случае линейной памяти можно делать реаллокацию, без копирований, перемещений. Говоря про АБИ вызова ХФ - это звучит смешновато. Тем более АБИ у gcc и msvc разный, конечно же. Если мы про Линукс и Виндовс.
источник

CD

Constantine Drozdov in pro.cxx
Ioann_V
Я думаю, что открытая апдресация победит бакеты, при идеальной ХФ. Бакеты это про бакеты, в узлах контейнера, а Адресация - про линейную память. Сегодня ХТ, это конечно все еще Маст Хев, но Перфект Хешинг это не про всех и не про все, в случае коллизий, конечно. Есть другие контейнеры, которые позволяют в тех или иных случаях получить +к перфомансу. Hat trees, for example. А еще в случае линейной памяти можно делать реаллокацию, без копирований, перемещений. Говоря про АБИ вызова ХФ - это звучит смешновато. Тем более АБИ у gcc и msvc разный, конечно же. Если мы про Линукс и Виндовс.
Я, кажется, предлагал считать nullptr-ы в записях, и, кажется, у меня была какая-то зависимость от размера элемента
источник

I

Ioann_V in pro.cxx
Не видел, было бы интересно почитать, честно говоря.
источник

CD

Constantine Drozdov in pro.cxx
Ну я прикидочно считал оверхеды, помню только это - для бакетов надо считать nullptr-ы (их собственно сколько бакетов)
источник