当前位置: 首页 > article >正文

Shopify 开源 WebAssembly 工具链 Ruvy

最近,Spotify 开源了Ruvy,一个 WebAssembly 工具链,能够将 Ruby 代码转换为 Wasm 模块。Ruvy 基于ruby.wasm, 用 Rust 实现,提升了性能并简化了 Wasm 模块的执行。

Ruvy 利用了ruby.wasm提供的 Ruby 解释器模块,并使用wasi-vfs (WASI 虚拟文件系统)将其与所有指定的 Ruby 源文件一起打包到单个模块中。wasi-vfs创建了一个虚拟文件系统并嵌入到.wasm二进制文件中,它提供了一种机制,让 Ruby 源文件对ruby.wasm可读,但不允许在 WebAssembly 运行时访问主机文件系统。

在构建 Wasm 模块时预先初始化 Ruby VM,而不是在将其加载到内存中执行时(默认使用ruby.wasm/wasi-vfs),从而提升了性能。Shopify 高级 Wasm 开发人员 Jeff Charles 解释说,这将使运行时性能提升了 20%。

此外,Charles 解释说,Ruvy 使得使用 Cranelift 编译器将 Wasm 编译成本机代码所需的时间缩短至 30%。

Ruvy 的另一个好处是,由于它将所有必需的文件打包在一起,不需要文件路径作为 WASI 参数,因而简化了执行语法。这对于各种边缘计算服务来说特别有用,因为这些服务不允许向主要端点函数提供额外的 WASI 参数。

目前,Ruvy 只提供了源代码发行版,所以你需要自行进行构建。这个过程很简单,原则上,在安装了所有必需的依赖项,包括rustup、wasm32-wasi、cmake和 Rosetta 2(macOS)之后,只需运行make,然后像下面的示例一样执行 Ruvy 来从ruby_examples/hello_world.rb


http://www.kler.cn/news/161203.html

相关文章:

  • C++STL的string类(一)
  • mysql的几种索引
  • 在数字化转型大时代下,企业进行知识管理的重要性
  • 腾讯云轻量应用服务器怎么安装宝塔Linux面板?
  • js vue form表单层级过深,层级太深了,form检测不到form的变化
  • 关于FBPINN的讨论
  • 南京大学考研机试题DP
  • 【文末送书】Python OpenCV从入门到精通
  • Abaqus基础教程--胶合失效仿真
  • Leetcode—1038.从二叉搜索树到更大和树【中等】
  • MySQL 数据库如何实现 XA 规范?
  • 【重磅来袭!!!工程师必备初始化建工程软件】
  • Java常见算法和lambda
  • 一个小问题
  • 人工智能企业引入S-SDLC,推动安全能力大跃升,保障AI技术体系深化落地
  • 每日OJ题_算法_双指针③_力扣202. 快乐数
  • 基于YOLOv8深度学习的火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
  • almaLinux centos8 下载ffmpeg离线安装包、离线安装
  • XUbuntu22.04之OBS30.0设置录制音频降噪(一百九十六)
  • Ubuntu systemd-analyze命令(系统启动性能分析工具:分析系统启动时间,找出可能导致启动缓慢的原因)
  • [vue3] 使用 vite 创建vue3项目的详细流程
  • 【pytorch】深度学习入门一:pytorch的安装与配置(Windows版)
  • 适合炎热天气的最佳葡萄酒有哪些?
  • 北京市经信局局长姜广智带队调研三六零 强调大模型应与行业结合
  • 修改el-table表头样式
  • 电脑搜不自己的手机热点,其余热点均可!
  • doris查询报错err: Error 1105: errCode = 2, detailMessage = query timeout
  • 通信线缆是什么
  • 论ChatGPT让程序员提升效率—掌握时代工具风口修炼之道【文末送书-02】
  • java常用字符串工具方法封装