关于javascript的gzip静态压缩方法?
javascript和。;的自带功能,用的就是介绍一下!
怎么样把两个压缩文件压到一起?
简单回答,可以把多个文件完全压缩成一个文件,也可以达到你说的压缩效果,但是慢!
it如果你只是在实验室里做实验,这没什么问题,但这并不容易。;这是普遍现象。
用软件的时候要考虑很多问题。
1.算法的局限性。像常用的lz77、gzip、snappy,在匹配同一个字符串时,对历史缓冲区的大小和最大匹配长度都有限制。以你说的例子为例。当你遇到第二个100m的时候,你需要寻找100m的位置来找到匹配,但是匹配这个100m是需要代价的(包括100m的内存消耗和匹配100m长度所需的时间),这会让压缩过程非常非常慢!其次,最大匹配长度的问题。同样,你可以不要在有限的时间内无限期要求更长的匹配,这是有门槛的。一般来说,匹配窗口的大小通常是几kb到几mb(snappy是64kb),最大匹配长度更小。基于字典的,如lz78和lzw也有字典大小和最大匹配长度的问题,所以我赢了这里不再赘述。
2.压缩率和压缩速度的软件折衷。简单来说,压缩比越大,压缩速度越快,反之亦然。主要看追求什么样的平衡。即使盲目追求压缩比,用一个算法压缩100m还是很贵的。最好使用多层压缩。例如,gzip使用霍夫曼和lz77的组合。当然也可以使用文件到文件的查重算法(云端一秒上传电影的各种例子),但是这个只适合云端备份,暂时不适合多文件压缩打包(量太小不实用,浪费资源)。
3.多文件压缩偏好每个单独的压缩,这主要是由性能决定的。比如你有16个文件要压缩,如果一开始分别压缩,可以调动16个线程一起压缩,时间会缩短16倍。然后花一点时间把压缩文件粘贴在一起,添加元数据。如果是一起压缩,因为并行压缩算法比较难,基本上是一个线程在工作(很多多线程也是先把文件切成多份,原理同上),会慢很多。解压也是一样的。通过调动多个线程,可以同时解压缩单个压缩文件。另外,如果解压时我只需要其中一个文件,这种压缩更有优势。我只需要读取元数据,只解压文件中需要的部分,而不需要解压所有文件。
原文标题:gzip压缩命令总结 关于JavaScript的gzip静态压缩方法?,如若转载,请注明出处:https://www.bjhtrmyl.com/bjh4/38988.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「亨通号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。