hash之压缩字典zipmap

转载 2018年04月16日 10:54:40

https://blog.csdn.net/u012658346/article/details/51329360

关键点

zipmap中的数量如果超过254的时候需要遍历才能得到key-value对的个数。

1)zmlen:1个字节 ,记录当前zipmap中key-value对的数量。由于zmlen只有1个字节,因此规定其表示的数量只能为0~254,当zmlen>254时,就需要遍历整个zipmap来得到key-value对的个数。 
  2)len: 用于记录key或value的长度,有两种情况,当len的第一个字节为0~253时,那么len就只占用这一个字节。的那个len的第一个字节为254时,那么len将用后面的4个字节来表示。因此len要么占用1字节,要么占用5字节。   
  3)free:1字节 ,表示随后的value后面的空闲字节数,这主要是改变key的value引起的,如将”foo” => “bar”变为”foo” => “hi”,那么会导致1个字节的空闲空间。当free的字节数过大用1个字节不足以表示时,zipmap就会重新分配内存,保证字符串尽量紧凑。 
  4)end:1个字节 ,为0xFF,用于标志zipmap的结束 
  一个简单的示例如下: 
  “\x02\x03foo\x03\x00bar\x05hello\x05\x00world\xff” 
  可以发现:zmlen=2 key1_len=3 key1=”foo” value1_len=3 free_len=0 value1=”bar” 
  key2_len=5 key2=”hello” value2_len=5 free_len=0 value2=”world” end=0xff 
  即当前zipmap中共有两个key-value对,分别为 “foo” => “bar” 和 “hello” => “world”

几种压缩算法实现原理详解

gzip 、zlib以及图形格式png,使用的压缩算法都是deflate算法。从gzip的源码中,我们了解到了defalte算法的原理和实现。我阅读的gzip版本为 gzip-1.2.4。下面我们将要...
  • ghevinn
  • ghevinn
  • 2015-05-15 17:23:32
  • 28975

几种压缩算法原理介绍

1 RLE RLE 又叫 Run Length Encoding ,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的...
  • CleverCode
  • CleverCode
  • 2015-06-30 09:40:03
  • 17899

zip压缩算法分析(2)

zip压缩算法分析(2)
  • iumffcfkpim
  • iumffcfkpim
  • 2016-09-12 17:58:25
  • 1784

Android图片压缩加密上传 - JPEG压缩算法解析

1. 概述  我们在开发的过程中肯定很多项目都需要上传图片文件,我们往往都是直接上传,相信很多哥们都并未对齐做过压缩。当然很多哥们估计也在这方面费劲心思,往往都是采用google提供好的BitmapF...
  • z240336124
  • z240336124
  • 2017-04-05 21:39:52
  • 1234

作业:使用Douglas-Peucker算法进行轨迹压缩

本文参考了一篇学长的博客,链接一下找不着了。数据处理数据预览fd=open(r".\2007-10-14-GPS.log",'r') limit=3 i=0 for line in fd: i...
  • qq_31823267
  • qq_31823267
  • 2017-11-10 20:21:09
  • 361

精讲哈夫曼压缩算法

哈夫曼压缩算法编码是无损压缩当中最好的方法。它使用预先二进制描述来替换每个符号,长度由特殊符号出现的频率决定。常见的符号需要很少的位来表示,而不常见的符号需要很多为来表示。 哈夫曼算法在改变任何...
  • abcd1f2
  • abcd1f2
  • 2016-01-13 09:58:35
  • 2074

Douglas-Peucker压缩算法

Douglas-Peucker算法(道格拉斯-普克算法)是将曲线近似表示为一系列点,并减少点的数量的一种算法。它的优点是具有平移和旋转不变性,给定曲线与阈值后,抽样结果一定。Douglas—Peuck...
  • u011331383
  • u011331383
  • 2017-09-22 20:24:59
  • 663

世界上第一个时序数据的Middle-Out算法压缩

原文:The World’s First Middle-Out Compression for Time-series Data—Part 1 作者:Vaclav Loffelmann 翻...
  • dev_csdn
  • dev_csdn
  • 2017-10-19 15:46:21
  • 9230

Luban(鲁班)——可能是最接近微信朋友圈的图片压缩算法

Luban Luban(鲁班)——Android图片压缩工具,仿微信朋友圈压缩策略 项目描述 目前做app开发总绕不开图片这个元素。但是随着手机拍照分辨率的提升,图片的压缩成为一个很...
  • chenfengdejuanlian
  • chenfengdejuanlian
  • 2016-08-11 18:17:37
  • 4224

几种压缩算法

一、 行程长度压缩   原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。 例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同...
  • txz_yshb
  • txz_yshb
  • 2013-07-19 13:18:41
  • 3506
收藏助手
不良信息举报
您举报文章:hash之压缩字典zipmap
举报原因:
原因补充:

(最多只允许输入30个字)