PHP的Ruby的APC模拟?

时间:2011-07-20 08:49:12

标签: ruby-on-rails ruby

PHP有不同的操作码缓存,如APC,Zend Optimizer来缓存代码并大大提高速度。 Ruby有类似的东西吗?

3 个答案:

答案 0 :(得分:4)

默认的Ruby 1.9.x基于字节码VM,此外还有基于Java虚拟机(JRuby)和LLVM(RubiniusMacRuby)的ruby实现。这些都将进行即时编译和您期望从现代VM中进行的其他优化。

答案 1 :(得分:1)

Rails中的默认生产设置是:

config.cache_classes = true

这意味着代码不会在请求后重新加载,因此它会缓存在内存中。

答案 2 :(得分:1)

就MRI而言,使用Ruby 2.3实验性字节码缓存已released

  

启用此功能所需要做的只是要求   'yomikomu'rubygem并设置了一些环境变量   在这里,您可以在上面的示例中找到两个导出命令。

     

为什么只启用VM级字节码缓存可能看起来有些神奇   通过要求'yomikomu'rubygem。 Koichi在他身上描述了这一点   票。

这是当前字节码缓存实现的快速基准测试结果。我在Ubuntu机器上使用了带有benchmark-ips的'bundle version'命令。源

该帖子还为这一新发布的功能提供了一些基准:

$ ruby measure.rb
Comparison:
        yomikomu(fs):        5.0 i/s
         yomikomanai:        3.6 i/s - 1.40x slower

其他ruby实现可能能够利用平台本机优化 - 例如。 JRuby受益于JVM JIT的性能优势。