lz

原文链接: lz-string 面向localstorage的字符串压缩库

https://www.npmjs.com/package/lz-string

这个库主要作用是将字符串压缩, 主要是为了能在localstorage中储存, 因为ls中只能存字符串, 而且有一些编码问题, 该库主要面向的是ls的字符串压缩和储存方案

pako 主要是字节数组, 而且压缩后的不知道能不能存到ls中, 主要是在一些奇怪的文字编码上, cocos用的lz, 所以还是尽量跟着他们用吧

对比如下

确实在压缩比上面lz占优势, 在小字符串上表现很好, 但是大字符串上pako时间上好很多

1const pako = require("pako") 2const fs = require("fs") 3const LZ = require("lz-string") 4function testPako(path) { 5 let s = fs.readFileSync(path, "utf8") 6 console.log("size:", s.length) 7 let st = +new Date() 8 let compressed = pako.deflate(s, { to: "string" }) 9 let ed = +new Date() 10 console.log("pako", compressed.length, compressed.length / s.length, ed - st) 11 st = +new Date() 12 let raw = pako.inflate(compressed, { to: "string" }) 13 ed = +new Date() 14 console.log("pako", raw.length, ed - st) 15} 16function testLZ(path) { 17 let s = fs.readFileSync(path, "utf8") 18 console.log("size:", s.length) 19 let st = +new Date() 20 let compressed = LZ.compress(s) 21 let ed = +new Date() 22 console.log("lz", compressed.length, compressed.length / s.length, ed - st) 23 st = +new Date() 24 let raw = LZ.decompress(compressed) 25 ed = +new Date() 26 console.log("lz", raw.length, ed - st) 27} 28 29let big = `D:/code/vue3/vue3-web-tools/public/worker.min.js` 30let small = `D:/code/vue3/vue3-web-tools/public/tesseract-core.wasm.js` 31testPako(big) 32testPako(small) 33testLZ(big) 34testLZ(small) 35 36/** 37size: 100785 38pako 31993 0.31743811082998463 232 39pako 100785 46 40size: 3880904 41pako 1388523 0.35778339273530085 887 42pako 3880904 272 43size: 100785 44lz 24197 0.24008533015825767 96 45lz 100785 55 46size: 3880904 47lz 906636 0.23361464236167656 3319 48lz 3880904 695 49*/
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

lz - HelloWorld