ruby - 带有元编程的 Ruby 应用程序 - 如何获取字节码或二进制文件或可以移植的东西
问题描述
我有一个带有元编程的 ruby 应用程序。应用程序的工作是读取多个输入文件(可以具有用户定义的功能和数据)。应用程序解析,解析后执行函数。我想知道,有没有办法在解析完成后获得可执行文件或字节码或其他东西。所以我可以导出这个 exe/字节码并在不同的机器上运行“执行”部分处理(相同的配置)。
环境细节:Ruby 2.7.2 操作系统:Red Hat Enterprise Linux (7.7)
解决方案
并不真地。由于 Ruby 是动态的,唯一有意义地知道您拥有有效代码的方法是运行它。C API几乎通过该ruby_exec_node
函数支持这一点,但最后我检查了对这种运行 Ruby 的风格的支持并不多。即使这样使用起来更方便,我也不知道跳过解析步骤会真正为您节省多少。
大多数生成字节码的 Ruby VM 都是 JIT 样式的,这意味着它们仅在通过 VM 执行一次代码后才生成字节码。这对 Ruby 最有效,因为它是如此动态,以至于如果不实际运行它就很难说它会做什么。
推荐阅读
- python - 使用 pip 安装程序下载 pandas 时出现安装错误
- javascript - 在 PageRequestManager 加载的 iframe 中显示另存为对话框后停止加载动画
- unity3d - 如何通过wifi在unity和arduino之间连接和传输数据
- java - 使用java在特定索引处附加csv文件中的列
- excel - 根据不同的单元格公式显示用户表单
- python - 在较新的 selenium/node-chrome 版本中禁用了硬件加速
- java - 如何在 Android 应用程序上运行 Java 方法时显示“思考”图像
- python - 使用请求或 selenium 抓取新闻标题无法返回数据
- google-apps-script - 如何将文档中的文本保存到变量中?
- python - Salabim 没有在 python 3.9 上运行