JavaScript 已经长久以来并且目前依然是浏览器运行时的主流开发语言,然而近年来,WebAssembly 的诞生为我们提供了一个全新的选择。这就引出了一个值得我们探索的问题:在浏览器运行环境中,哪个语言的性能更优越,JavaScript 还是 WebAssembly?笔者最近在工作中正好面临了这样的选择,我需要在浏览器运行时动态插入一些策略,用于在用户 ......
73
0
0
2024-05-05
作者 | 黄文勇、何良、徐君编辑 | 蔡芳芳在刚刚过去的 2023 年,WebAssembly 技术发展态势喜人,多项关键性提议都进入了新阶段,并且获得了社区与工具链的广泛深入支持。同时,其应用场景呈现出蓬勃扩展的态势,吸引着越来越多组织和个人开发者群体投入 WebAssembly 的开发之中。下文我们将首先回溯 WebAssembly 在 2023 年各项 ......
90
0
0
2024-04-09
1 WebAssembly 介绍WebAssembly(Wasm)是一种通用字节码技术,它可以将其他编程语言(如 Go、Rust、C/C++ 等)的程序代码编译为可在浏览器环境直接执行的字节码程序。WebAssembly 的初衷之一是解决 JavaScript 的性能问题,让 Web 应用程序能够达到与本地原生应用程序类似的性能。作为底层 VM 的通用、开放 ......
110
0
0
2024-01-12
Docker+Wasm 的技术预览版现在已经发布了,Wasm 最近引起了很多轰动,该功能将使你更容易快速构建针对 Wasm 运行时的应用程序。作为本次发布的一部分,我们也很高兴地宣布 Docker 将作为投票成员加入字节码联盟[1],字节码联盟是一个非营利组织,致力于在 WebAssembly 和 WebAssembly 系统接口(WASI)等标准的基础上, ......
286
0
0
2023-03-02
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...本节我们将改进实现的生命游戏的性能,我们将利用时间分析来指导我们的工作。1 使用window.performance.now函数创建FPS timerFPS(Frames Per Se ......
303
0
0
2022-06-13
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...本节,我们将给康威游戏添加交互。1 暂停和恢复游戏我们首先在wasm-game-of-life/www/index.html中添加button在标签上面添加如下:<button ......
326
0
0
2022-06-13
最近,WebAssembly 在 JavaScript 圈非常的火!人们都在谈论它多么多么快,怎样怎样改变 Web 开发领域。但是没有人讲他到底为什么那么快。在这篇文章里,我将会帮你了解 WebAssembly 到底为什么那么快。第一,我们需要知道它到底是什么!WebAssembly 是一种可以使用非 JavaScript 编程语言编写代码并且能在浏览器上运 ......
369
0
0
2022-06-12
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...上一节我们对之前写的代码进行了测试,这一节我们来介绍调试方法。在我们写更多的代码之前,我们希望有一些调试工具来让我们调试代码中的bug。具体的一些工具我们后续介绍。下面我们主要介绍三种 ......
346
0
0
2022-06-12
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...本节我们开始测试,我们首先来测试tick函数,以确保提供我们期望的输出。1 完善Universe我们在wasm_game_of_life/src/lib.rs中的impl Univer ......
272
0
0
2022-06-12
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...1 说明在上一节的实现中,我们是在Rust中实现了填充的内容,然后让wasm bindgen转换为一个有效的js字符串,这样就产生了不必要的副本。因为js代码已经知道宇宙的宽度和高度, ......
287
0
0
2022-06-12
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...本节,我们就用WebAssembly实现一个简单的游戏。1 游戏规则在一个二维方格中,每个方格的状态都为“生”或者“死”。每个方格对应的就是一个细胞,每个细胞和它的周围的八个方格相邻。 ......
293
0
0
2022-06-12
简介正如我们 最近解释的,WebAssembly 是一种用于以任何语言编写的二进制格式的软件,旨在最终无需更改就能在任意平台运行。WebAssembly 的第一个应用是在 Web 浏览器中,以使网站更快、更具交互性。WebAssembly 有计划推向 Web 之外,从各种服务器到物联网(IoT),其创造了很多机会,但也存在很多安全问题。这篇文章是对 ......
392
0
0
2022-06-03
0 介绍视频地址:www.bilibili.com/video/BV1eg411g7c...相关源码:github.com/anonymousGiga/Rust-and-...1 为何是Rust和WebAssembly?低水平控制与高水平的人体工程学JavaScript Web应用程序很难获得和保持可靠的性能。Rust为程序员提供了低级别的控制和可靠的性能。 ......
296
0
0
2022-05-16
通过这个分步教程,开始用人类可读的文本编写 WebAssembly。WebAssembly 是一种字节码格式,几乎所有的浏览器 都可以将它编译成其宿主操作系统的机器代码。除了 JavaScript 和 WebGL 之外,WebAssembly 还满足了将应用移植到浏览器中以实现平台独立的需求。作为 C++ 和 Rust 的编译目标,WebAssem ......
446
0
0
2022-04-10
了解在 Firefox 上运行 WebAssembly 的机会和局限性。WebAssembly 是一种可移植的执行格式,由于它能够以近乎原生的速度在浏览器中执行应用而引起了人们的极大兴趣。WebAssembly 本质上有一些特殊的属性和局限性。但是,通过将其与其他技术结合,将出现全新的可能性,尤其是与浏览器中的游戏有关的可能性。本文介绍了在 Firefox ......
370
0
0
2022-04-09