SL-19110 Fast hashing classes for use in place of the slow LLMD5, where speed matters. (#64)
This commit adds the HBXX64 and HBXX128 classes for use as a drop-in replacement for the slow LLMD5 hashing class, where speed matters and backward compatibility (with standard hashing algorithms) and/or cryptographic hashing qualities are not required. It also replaces LLMD5 with HBXX* in a few existing hot (well, ok, just "warm" for some) paths meeting the above requirements, while paving the way for future use cases, such as in the DRTVWR-559 and sibling branches where the slow LLMD5 is used (e.g. to hash materials and vertex buffer cache entries), and could be use such a (way) faster algorithm with very significant benefits and no negative impact. Here is the comment I added in indra/llcommon/hbxx.h: // HBXXH* classes are to be used where speed matters and cryptographic quality // is not required (no "one-way" guarantee, though they are likely not worst in // this respect than MD5 which got busted and is now considered too weak). The // xxHash code they are built upon is vectorized and about 50 times faster than // MD5. A 64 bits hash class is also provided for when 128 bits of entropy are // not needed. The hashes collision rate is similar to MD5's. // See https://github.com/Cyan4973/xxHash#readme for details.
parent
c154f4f6
No related branches found
No related tags found
Showing
- autobuild.xml 30 additions, 0 deletionsautobuild.xml
- indra/cmake/CMakeLists.txt 1 addition, 0 deletionsindra/cmake/CMakeLists.txt
- indra/cmake/LLCommon.cmake 1 addition, 0 deletionsindra/cmake/LLCommon.cmake
- indra/cmake/xxHash.cmake 8 additions, 0 deletionsindra/cmake/xxHash.cmake
- indra/llcommon/CMakeLists.txt 2 additions, 0 deletionsindra/llcommon/CMakeLists.txt
- indra/llcommon/hbxxh.cpp 377 additions, 0 deletionsindra/llcommon/hbxxh.cpp
- indra/llcommon/hbxxh.h 259 additions, 0 deletionsindra/llcommon/hbxxh.h
- indra/llcommon/lluuid.cpp 8 additions, 20 deletionsindra/llcommon/lluuid.cpp
- indra/llprimitive/llmodel.cpp 7 additions, 12 deletionsindra/llprimitive/llmodel.cpp
- indra/newview/skins/default/xui/da/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/da/floater_about.xml
- indra/newview/skins/default/xui/de/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/de/floater_about.xml
- indra/newview/skins/default/xui/en/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/en/floater_about.xml
- indra/newview/skins/default/xui/es/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/es/floater_about.xml
- indra/newview/skins/default/xui/fr/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/fr/floater_about.xml
- indra/newview/skins/default/xui/it/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/it/floater_about.xml
- indra/newview/skins/default/xui/ja/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/ja/floater_about.xml
- indra/newview/skins/default/xui/pt/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/pt/floater_about.xml
- indra/newview/skins/default/xui/ru/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/ru/floater_about.xml
- indra/newview/skins/default/xui/tr/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/tr/floater_about.xml
- indra/newview/skins/default/xui/zh/floater_about.xml 1 addition, 0 deletionsindra/newview/skins/default/xui/zh/floater_about.xml
Loading
Please register or sign in to comment