首页 > 解决方案 > 带有元编程的 Ruby 应用程序 - 如何获取字节码或二进制文件或可以移植的东西

问题描述

我有一个带有元编程的 ruby​​ 应用程序。应用程序的工作是读取多个输入文件(可以具有用户定义的功能和数据)。应用程序解析,解析后执行函数。我想知道,有没有办法在解析完成后获得可执行文件或字节码或其他东西。所以我可以导出这个 exe/字节码并在不同的机器上运行“执行”部分处理(相同的配置)。

环境细节:Ruby 2.7.2 操作系统:Red Hat Enterprise Linux (7.7)

标签: rubymetaprogramming

解决方案


并不真地。由于 Ruby 是动态的,唯一有意义地知道您拥有有效代码的方法是运行它。C API几乎通过该ruby_exec_node函数支持这一点,但最后我检查了对这种运行 Ruby 的风格的支持并不多。即使这样使用起来更方便,我也不知道跳过解析步骤会真正为您节省多少。

大多数生成字节码的 Ruby VM 都是 JIT 样式的,这意味着它们仅在通过 VM 执行一次代码后才生成字节码。这对 Ruby 最有效,因为它是如此动态,以至于如果不实际运行它就很难说它会做什么。


推荐阅读