在2022年,使用WASM执行前端性能优化是一件普遍的事情。本文记录了如何在3分钟内成功访问微信中的WASM以优化性能。
毫无疑问,WASM的第一语言选择是生锈。强大的功能使开发人员可以专注于逻辑代码的写作。最终产品编译和与胶水层代码的键合将自动帮助我们。不要考虑迷你程序场景,小程序场景。WebAssembly对象是最终的Castlet
以著名的色彩图片为例。首先,我们去搜索Crates.io上的关键字。果然,我们找到了该算法的版本。
用于创建一个简单的开发模板。
在大多数现有算法中存在的项目中,我们要做的仅仅是输入和输出转换。使用JS数据类型,RUST数据类型是必需的。
在这里,我们使用JS_SYS库来包装Rust Type.Observe JSvalue :: For基本类型等。我们可以直接转换为
您可以看到,通过上面的代码,忽略参数预处理零件,我们只需要大约20行代码即可完成此转换。如果输入和输出全部,则更容易。
不同方案(例如环境)的胶水层代码是不同的。好处是内置在公共环境中的部署顺序。我们可以使用它在不同平台上使用它。
迁移后,您将跑步以查看性能是否有所改善。全部,这些方案不是银炸弹,但是在某些情况下,它们会降低应用程序性能。
测试与JS版本相比,WASM版本的性能得到了提高。
接下来,输入今天的关键主题。如何在小程序中访问。从理论上讲,请参阅Applet的官方文档,支持小程序。我们在此处选择的产品已连接到使用。
首先,我们根据常规写作介绍相关代码
我没想到有错误。
小程序中的相应API名称是
在这里,我只是在产品的头部插入了前处理代码,而不是整体替换
观察错误的代码
此处的目的是,在浏览器中,我们可以通过API组合下载初始化文件。不幸的是,我们不能在小程序中执行此操作。
因此,在这里我们在这里杀死此代码,然后将其直接放在已加载的本地文件中
这个问题仅出现在真实机器中
出乎意料的是,该API在小程序中被cast割。
在这里,我们只能手动介绍polyfill文件以提供它
观察错误代码
果然,未定义,此API尚未在applet中实现。因此,我们打印的类型,删除判断代码并将返回值直接修复到
在总结了上述四个问题之后,我们不能总是每次部署不同平台的产品,否则每次构建小型程序产品时,我们都必须手动更改如此多的位置。
因此,对于考虑生产力,我直接创建了一个模板来结合四个平台的构建产品并发布它
在模板中,我们集成了四个平台的构造脚本
开发人员只需要通过
您可以自动构建部署和部署。
假设当前一个,以下四个将在最后部署
所有行为都是自动实现的
原始:https://juejin.cn/post/7103814396006105124