- Judy array
In
computer science andsoftware engineering , a Judy array is a complex but very fastassociative array data structure for storing and looking up values using integer or string keys. Unlikearray s, Judy arrays may be sparse; that is, they may have large ranges of unassigned indices.Judy arrays are designed to keep the number of processor
cache-line fills as low as possible, and the algorithm is internally complex in an attempt to satisfy this goal as often as possible. Due to these cache optimizations, Judy arrays are fast, sometimes even faster than ahash table . And because Judy arrays are a type oftrie , they consume much less memory than hash tables.Roughly speaking, it is similar to a highly-optimised 256-ary trie data structure. [Alan Silverstein, " [http://judy.sourceforge.net/application/shop_interm.pdf Judy IV Shop Manual] ", 2002]
Judy consumes more CPU time than other data structures, but aims to make up for this usage with less waiting on memory.
Judy arrays are also believed to be less vulnerable to
algorithmic complexity attacks . [ [http://www.cs.rice.edu/~scrosby/hash/ Denial of Service via Algorithmic Complexity Attacks] ]The Judy array was invented by Doug Baskins and named for his sister.
External links
* [http://judy.sourceforge.net/ Main Judy arrays site]
* [http://docs.hp.com/en/B6841-90001/index.html Programming with Judy: C LanguageJudy]
* [http://judy.sourceforge.net/downloads/10minutes.htm How Judy arrays work and why they are so fast]
* [http://judy.sourceforge.net/application/shop_interm.pdf A complete technical description of Judy arrays]
* [http://www.nothings.org/computer/judy/ An independent performance comparison of Judy to Hash Tables]References
Wikimedia Foundation. 2010.