RJIT: Ruby JIT¶ ↑
本文档提供了一些在您使用 RJIT 时可能很有用的技巧。
项目目的¶ ↑
此项目用于实验目的。对于生产部署,请考虑使用 YJIT。
支持的平台¶ ↑
以下平台被认为可以工作。linux-x86_64
在 CI 上进行测试。
-
操作系统:Linux、macOS、BSD
-
架构:x86_64
configure(配置)¶ ↑
–enable-rjit¶ ↑
在支持的平台上,默认设置 --enable-rjit
。通常您不需要指定此项。您仍然可以手动传递 --enable-rjit
以在不支持的平台上尝试 RJIT。
–enable-rjit=dev¶ ↑
如果 libcapstone 可用,则启用 --rjit-dump-disasm
。
make(构建)¶ ↑
rjit-bindgen¶ ↑
如果您看到“RJIT bindgen”GitHub Actions 失败,请提交失败作业中显示的 git diff
。
要本地执行相同操作,请在安装 libclang 后运行 make rjit-bindgen
。macOS 似乎默认具有 libclang。在 Ubuntu 上,您可以使用 apt install libclang1
安装它。
ruby¶ ↑
–rjit-stats¶ ↑
这会在退出时打印 RJIT 统计信息。
–rjit-dump-disasm¶ ↑
这将转储所有 JIT 代码。您需要在配置之前安装 libcapstone,并在配置时使用 --enable-rjit=dev
。
-
Ubuntu:
sudo apt-get install -y libcapstone-dev
-
macOS:
brew install capstone