Notes |
|
|
А можешь еще для сравнения на скорость CityHash64 наш проверить. Интересно соотношение производительности. |
|
|
(0018292)
|
zed
|
23-05-2018 09:13
|
|
Приаттачил.
pascal - обычная реализация
assembler - то что сейчас используется
libzlib1.dll - zlib собранная в Mingw-w64 (считает немного быстрее)
crc32cfast - реализация из mORMot (чексумма не совпадает с CRC32), используется у них в качестве алгоритма хэширования. Оптимизировано под SSE4.2.
CityHash64 получается примерно одинаково быстрый по сравнению с быстрым CRC, а вот CityHash32 выигрывает. |
|
|
|
Спасибо за инфу.
> CityHash64 получается примерно одинаково быстрый по сравнению с быстрым CRC, а вот CityHash32 выигрывает.
Ну, я подозревал, что что-то такое будет. Зря ты на CRC32 в тайлохранилищах завязался - CityHash64 был бы гораздо лучше (размер больше всего на 4 байта, скорость такая же, а вероятность коллизии на порядки меньше), но теперь уже ничего не сделаешь.
Поддерживать уже существующие тайлохранилища придется, так что просто добавить использование libcrc32.dll и ладно. Но для новых форматов тайлохранилищ и для случая новых версий существующих (без обратной совместимости), нужно иметь в виду, что лучше использовать CityHash64. |
|
|
(0018294)
|
zed
|
23-05-2018 12:23
|
|
Сделал репо с сорцами и бенчмарком (в секции Downloads можно скачать скомпилированную версию).
Для порядку, форкни репо с сорцами в SAS.Dlls, а то я не знаю как это из своего аккаунта сделать. |
|