朱迪矩阵

✍ dations ◷ 2025-07-08 13:47:35 #数据结构

朱迪矩阵(Judy array)是一个计算机科学和软件工程学中的名词,是一种高性能、低内存消耗的数据结构,实现了关联数组的功能。与普通数组不同,Judy array可以是稀疏的,这一点更像是散列表,而非数组。Judy array可以用整形或字符串作为键值来存储、查询数据,它最大的优势是可动态自动扩展,高性能,节省内存并且易于使用。

由于Judy array在操作速度和内存使用上都非常高效,同时并不需要特殊配置或初始化,使得它可以用来替换掉多种常见数据结构,例如跳跃列表,链表,二叉树,B树,散列表,而且judy array在海量数据集上的表现比那些数据结构更好。

粗略地讲,Judy array像是一个高度优化了的256叉树,为了节省内存,它使用了超过20种不同的压缩技术来压缩树节点。.

Judy array 是Douglas Baskins发明的,他用自己妹妹的名字命名了这种数据结构。

容量、用量、密度 这三个概念是传统树形结构中很少使用,但在Judy array中反复使用的。这个的概念的定义如下:

Judy array是没有容量限制的,所以也不用事先分配好存储空间,它可以根据用量动态决定生长或收缩内存使用,来支撑海量数据存储。其存储能力仅受到计算机内存容量的限制。 Judy array的内存用量与其存储的数据用量基本呈线性关系。

Judy array在设计上就力争保持尽可能高的CPU缓存命中率,为了达到这个目标,其内部算法十分复杂。由于有了这些针对性的优化,使得Judy array在运行速度上十分高效,有时甚至超过散列表,尤其是在处理大数据集的时候。由于Judy array是依托树 (数据结构)形结构设计的,其内存消耗比散列表小很多,同样是拜树形结构所赐,使得它可以完成键值的顺序遍历,这一点在散列表中是不可能的。

从Judy array的发明者所撰写的简介以及其他一些相关的中文论文中看,设计中使用了多种的压缩思想与压缩算法,根据不同的密度情况,选择不同的压缩方式,以期尽可能节省内存,降低实际存储中的稀疏情况,我猜测,这能够在缓存命中率上带来不少提升,进而提升效率。

看到的算法思路包括:

相关

  • 语文语文,包括语和文,即口头语和书面语。中国大陆学校的汉民族语文科目通常被称为语文。日常生活中,语跟文两字并无严格指口头语及书面语而混用之,如英语说明书,中文报导等。清末1904
  • 小篆陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 ‧  书法 ‧ 飞白书笔画 ‧ 
  • 聚酰亚胺聚酰亚胺(英语:Polyimide,PI)是一类具有酰亚胺重复单元的聚合物,具有适用温度广、耐化学腐蚀、高强度等优点。1961年杜邦公司首次推出聚酰亚胺的商品。聚酰亚胺作为一种特种工程
  • 星期的计算星期的计算是以数学方法计算出某一指定日期是在一周中的哪一天。多种数学算法可计算出过去或未来某一指定日期,是属于一周中的星期几,包括判决日法则(英语:Doomsday rule)(Doomsda
  • 北极狼北极狼(学名:Canis lupus arctos),又称白狼,是犬科的哺乳动物,也是灰狼的亚种,分布于欧亚大陆北部、加拿大北部和格陵兰北部。北极狼一般比灰狼小,连尾巴长约1至1.5米,成年的北极狼仅
  • 信蜜恒信蜜恒(缅甸语:ရှင်မင်းခေါင်,发音:)是37尊缅甸神灵之一。他生前是缅甸蒲甘王朝国王弃须,死于一次狩猎意外。
  • 宫村荣一宫村荣一为19世纪末日本人类学研究学者,1896年8月连同多田纲辅和伊能嘉矩等日籍学者抵达台湾。1897年时他和伊能嘉矩于台北圆山西麓发现贝壳残骸遗址,两学者推断应为史前时代
  • 李伯华李伯华(生卒年不详),字新来,明朝官员。山东掖县(今莱州市)人。同进士出身。万历四年(1576年)丙子科举人,万历十四年(1586年)考中丙戌科三甲进士。任顺天府固安县知县。官至户部主事。曾
  • 鬼娃株式会社剧团鬼娃株式会社剧团,创立于2005年。2006年3月推出剧团的第二号作品《恶了》,获得该年度台新艺术奖的提名 。每年固定于农历七月推出鬼节特别公演外,也从2008年开始,每年固定有全
  • 天主教凤凰城教区天主教凤凰城教区(拉丁语:Dioecesis Phoenicensis、英语:Roman Catholic Diocese of Phoenix)是美国一个罗马天主教教区,属于圣菲总教区。1969年12月2日升为教区。范围包括亚利桑