首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

花椒前端用WebAssembly提升前端应用解压缩性能的尝试

一、背景 3D形象展示项目的图片及模型等资源以压缩包的形式提供,需要下载并解压后再用Three.js加载并展示出来,其中的解压缩环节使用的是GitHub上获得5.6k Star的JS开源组件库JSZip...压缩和解压缩属于CPU密集型计算任务,相对于JavaScript这样的解释型语言来说,C作为编译型语言更加适合,于是有了尝试把C解压缩程序编译为WebAssembly替换JSZip解压缩环节的想法,看看性能是否还会有进一步的提升...解压出资源后才能提供给Three.js去处理,由此可见,主线程和Worker线程之间的交互时序非常重要。...测试方法是通过页面加载3次资源并渲染,资源共有10个压缩包,大小从几百k到2M+不等,整个流程包括下载、解压、加载三个部分,重点关注解压部分,对比JSZip和Wasm两个版本的处理耗时数据如下(测试使用...从数据对比可以看到,JSZip版的解压在一开始时由于还没有JIT编译器对关键代码段进行优化,所以性能与Wasm版本有较大差距。

2.6K10

在前端如何玩转 Word 文档

这里阿宝哥已经提前准备了一个包含阿宝哥头像和某些文本的 「abao.docx」 文档,接着复制一份重命名为 「abao.zip」,然后使用 ZIP 压缩/解压软件进行解压。 ?...通过观察解压后的目录,我们发现 Word 文档由一系列的 XML 文件和多媒体文件组成, 「abao.docx」 文档中的阿宝哥头像,最终被解压到 「word/media」 目录下。...前端转换:对于前端开发者来说,要想在前端解析 Word 文档,我们首先需要对 Word 文档进行解压,然后再进一步解析解压后的 XML 文档。...对于 Mammoth.js 内部是如何解析 Word 中的 XML 文件,我们就不做介绍了,反之我们来简单介绍一下 Mammoth.js 内部依赖的 JSZip 这个库。...:component install Stuk/jszip 「手动」:先下载 JSZip 安装包,然后引入 dist/jszip.js 或 dist/jszip.min.js 文件 2.3.2 JSZip

5.1K30

【前端监控】离线日志

可以直接存一个js对象,数据都有一个独一无二的key,根据这个key就能拿到对应的value 2、异步操作。...用来读取本地日志,然后打包成zip,一次性上传 1、引入 jsZip 文件 2、打包压缩 比较简单,像这样 const zip = new JSZip(); zip.file( `a.log` /...,然后解析处理里面的内容 解压使用了 JSZip( https://github.com/Stuk/jszip ) 和 JSZipUtils(https://github.com/Stuk/jszip-utils...) 解压也很简单,就这么一段代码,只要拿到解压链接 以及 压缩包内的文件 JSZipUtils.getBinaryContent( `http://wwww.test.com/xxxxxx.zip`...代码设计等问题,简化代码量,为了能可以快速理解主线逻辑 https://gitee.com/hoholove/study-code-snippet/blob/master/LOGGER/offlineLog.js

1.5K40

纯前端生成海报实践及其性能调优

最终通过JSZip 将图片打包进压缩包中。 4. ...3 分析问题 3.1 js内存问题 现在让我们来一起分析一下,在哪里出现了问题? 分析发现,最有可能出现问题的地方是步骤 3——最终通过JSZip将图片打包进压缩包中。...每处理 10 条数据就下载一次压缩包,将 JSZip (压缩包对象)所占用的内存释放。 但是事情真的有这么简单吗?...网页内存增长情况 1 可以看到 JS Heap 在每处理一条 Excel 表格数据后都会增长,没有得到释放,这里没有得到释放的内存占用是上文分析的 JSZip 导致的吗?...排查内存溢出的问题可以从两方面入手——JS 和 DOM。既然 JS 的问题我们已经解决,那就看看 DOM。 整体流程中,对 DOM 进行操作的地方有两点: 1.

1K20

WEB前端压缩看这里就够了

web项目需求中有很多资源压缩优化有很多不错的方案 比如针对文本js的compress 以及服务器gzip,比如sprite雪碧图+png压图。...在web前端进行无损压缩解压缩有以下方案: 3方案 方案一  基于LZ开头压缩算法等传统压缩方案(推荐) 基于JavaScript操作二进制数据的接口(ArrayBuffer对象、TypedArray对象...算法对应ZIP 2)bzip2和lzma 算法对应 7zip 以下是一些普通的转换二进制算法: 1) File API 2) Base64->转换 相关压缩算法已经很成熟可以查阅相关资料,下面推荐有关js...库 推荐开源库: https://stuk.github.io/jszip/(zip算法 api友好) https://github.com/LZMA-JS/LZMA-JS(7zip 压缩率更好) 案例...: 1)例如threejs 3d 的编辑器使用 jszip库线上压缩打包https://threejs.org/editor/ 2)字体组件http://pub.code.oa.com/project/

1.3K10
领券