是否可以在c扩展中封送解释的ruby代码数据以加快加载速度?

是否可以在c扩展中封送解释的ruby代码数据以加快加载速度?,ruby,marshalling,load-time,Ruby,Marshalling,Load Time,Ruby 2.0.0在加载时间上给我们带来了巨大的变化。我想知道我们是否可以通过c扩展缓存解释的ruby代码数据来获得更好的加载时间。我在读书时想到了这个主意。下面是其中添加了一些缓存伪代码的片段 #include "ruby.h" main() { /* ... our own application stuff ... */ ruby_init(); ruby_script("embedded"); /* HERE IS THE PSEUDOCODE FOR CACHIN

Ruby 2.0.0在加载时间上给我们带来了巨大的变化。我想知道我们是否可以通过c扩展缓存解释的ruby代码数据来获得更好的加载时间。我在读书时想到了这个主意。下面是其中添加了一些缓存伪代码的片段

#include "ruby.h"

main() {
  /* ... our own application stuff ... */
  ruby_init();
  ruby_script("embedded");

  /* HERE IS THE PSEUDOCODE FOR CACHING */
  if (ruby_file_previously_loaded_and_cached())
      load_marshalled_ruby_data();
  else
      rb_load_file("start.rb");
      cache_all_the_ruby_data();
  end

  while (1) {
    if (need_to_do_ruby) {
      ruby_run();
    }
    /* ... run our app stuff */
  }
}
这样做可能吗?

您不能缓存“解释代码”。您只能缓存“字节码”。不过,我不相信这会有很大的不同。 从Rails代码库中有多少文件来判断,而且加载速度相当快,将ruby代码转换为字节码似乎并不特别慢


我制作了一个mruby“compiler”(),它并没有比通常的解释版本快多少。这基本上是“缓存”所能达到的程度。

未找到此处描述的任何此类缓存方法:。搜索继续。。。