代码之家  ›  专栏  ›  技术社区  ›  Sancarn

编译防止了什么?

  •  3
  • Sancarn  · 技术社区  · 6 年前

    RubyVM可以将Ruby代码编译为字节代码,然后直接执行它。例如。,

    汇编语言

    File.write(ARGV[1],RubyVM::InstructionSequence.compile_file(ARGV[0]).to_binary)
    

    RB

    RubyVM::InstructionSequence.load_from_binary(File.read(ARGV[0]).force_encoding(Encoding::ISO_8859_1)).eval
    

    球拍

    ruby COMPILE.rb test.rb test.rbx
    ruby EXECUTE.rb test.rbx
    

    的红宝石代码 test.rb 它本身实际上是执行的。这里有什么明显的缺点吗?一位朋友建议人们要小心,因为它可能不会在其他操作系统上运行。但是,我希望它能在所有操作系统上工作,例如Java字节码,它可以在JVM执行的所有操作系统上运行。

    编译Ruby-to-Byte代码是否有明显的缺点(当然除了可读性)?

    1 回复  |  直到 6 年前