鸽子王带你玩wasm

简介: 鸽子王带你玩wasm

猿人学第十五题也出来啦

题目链接:http://match.yuanrenxue.com/match/15

十五题是一个WebAssembly类型简称wasm 看看介绍

下面 就由鸽子王小林弟弟来带你们玩




常规操作 先下一个XHR断点

然后堆栈找m的来源

能看到这里有加载了一个main.wasm 这就是我们今天的主角了

逻辑很清晰 但是 window.q是啥呢 要咋调用呢?咋玩呢?



无需担心 跟着我来

俩种玩法

node

由于node是支持WebAssembly的 所以直接导入wasm改写原来的代码就可以直接调用了

我直接手动把main.wasm文件转为Uint8Array

然后把手动改写代码

自己手敲一下理解一下


python

先装一个python-wasmer库

GitHub地址:https://github.com/wasmerio/wasmer-python

$ pip install wasmer==1.0.0a3
$ pip install wasmer_compiler_cranelift==1.0.0a3

GitHub里面就有使用方法

根据GitHub给出的方法再结合上网页上的使用方法

改写成python就是

顺便记一个小坑

Tips

如果安装好wasmer后运行不了

ImportError: Wasmer is not available on this system

经过咨询和观察 发现是python版本的问题 虽然作者说支持3.9 但是亲测不行

所以我手动将版本回滚到3.79 再次pip install wasmer后运行正常了

就这问题卡了我2个小时....害




最后Python运行

完美撒花 感谢各位大佬观看







[完]

相关文章
|
Web App开发 缓存 移动开发
V8 JS AOT化的探索与实践
JS 语言的动态性非常优秀,其弱类型等语言特性也使得一线业务开发者更容易上手,但这也导致 JS 每一次运行前都要重复编译,使得 JS 的执行性能不理想;虽然之前 UC 内核有做过 Code Cache 方案,但支持的场景不够完整,与原生 Native 的技术方案比,尤其是首次启动场景(如各类大促活动等)还是有比较大的差距。为了能尽可能做到与 Native 对标,缩小性能差距,同时让业务开发者无感,我们开发了 JS AOT 功能。本分享将结合目前集团内自有业务形态,以及 JS 在 Web 中的执行过程,介绍JS AOT是如何设计和实现的,以及能给业务带来哪些收益。本篇分享来自阿里巴巴的喻世江在第
2310 0
V8 JS AOT化的探索与实践
|
JSON JavaScript 前端开发
如何通过 JavaScript 运行用 Go 编写的 WebAssembly 模块? 下
如何通过 JavaScript 运行用 Go 编写的 WebAssembly 模块?
231 0
|
9月前
|
编解码 Ubuntu C++
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
WebAssembly01--web 编译FFmpeg(WebAssembly版)库
127 0
|
Rust 安全 C#
c#如何使用WASM跨语言调用?
c#如何使用WASM跨语言调用?
152 0
c#如何使用WASM跨语言调用?
|
C# 网络架构
Blazor_WASM之4:路由
Blazor_WASM之4:路由
166 0
|
JSON 编解码 Rust
如何通过 JavaScript 运行用 Go 编写的 WebAssembly 模块? 上
如何通过 JavaScript 运行用 Go 编写的 WebAssembly 模块?
205 0
|
移动开发 前端开发 JavaScript
Blazor_WASM之3:项目结构
Blazor WebAssembly项目模板可选两种,Blazor WebAssemblyAPP及Blazor WebAssemblyAPP-Empty
190 0
|
Rust JavaScript 前端开发
Wasm 原生时代已经来到
WebAssembly 作为一种新兴的网页虚拟机标准,它的设计目标包括:高可移植性、高安全性、高效率。
Wasm 原生时代已经来到
|
前端开发 JavaScript C#
Blazor_WASM之2:Razor语法
Razor 是一种标记语法,用于将基于 .NET 的代码嵌入网页中。 Razor 语法由 Razor 标记、C# 和 HTML 组成。 Razor 可在 Razor 组件 文件 (.razor) 中找到。 Razor 语法类似于各种 JavaScript 单页应用程序 (SPA) 框架(如 Angular、React、VueJs 和 Svelte)的模板化引擎,本文针对Razor文件介绍Razor常用语法。
141 0
|
Web App开发 机器学习/深度学习 监控
WebAssembly 出来之前发生了什么
1995年javascript诞生,而且诞生的很快。 这货前10年迅速发展,紧接着就开始浏览器大战,都来抢占市场份额。 当时的互联网也不太发达,应用也没那么复杂,所以很多浏览器厂商还没考虑到js执行的效率问题。
154 0
WebAssembly 出来之前发生了什么