Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails PHP';Ruby的APC模拟?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails PHP';Ruby的APC模拟?

Ruby on rails PHP';Ruby的APC模拟?,ruby-on-rails,ruby,Ruby On Rails,Ruby,PHP有不同的操作码缓存,如APC、Zend Optimizer,用于缓存代码并显著加快速度。Ruby有类似的功能吗?Rails中的默认生产设置是: config.cache_classes = true 这意味着在请求后不会重新加载代码,因此它会缓存在内存中。默认的Ruby 1.9.x基于字节码VM,此外,您还有基于Java虚拟机()和LLVM(和)的Ruby实现。这些都将进行即时编译和其他优化,这是现代虚拟机所期望的。就MRI而言,Ruby 2.3已经在进行实验性字节码缓存 要启用此功能,

PHP有不同的操作码缓存,如APC、Zend Optimizer,用于缓存代码并显著加快速度。Ruby有类似的功能吗?

Rails中的默认生产设置是:

config.cache_classes = true

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

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

就MRI而言,Ruby 2.3已经在进行实验性字节码缓存

要启用此功能,只需 “yomikomu”rubygem,并在 在这里,您可以在上面的示例中找到两个导出命令

为什么只启用VM级字节码缓存看起来有点不可思议 通过要求“yomikomu”rubygem。Koichi在他的演讲中描述了这一点 票

下面是当前字节码缓存实现的快速基准测试结果。我在Ubuntu机器上对基准IP使用了“bundle version”命令。来源

这篇文章还为这个新发布的功能提供了一些基准:

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

其他ruby实现可能能够利用平台本机优化,例如JRuby从JVM JIT的性能优势中获益

所以,若我理解正确的话,在Ruby中,代码缓存问题是以比PHP更优雅的方式解决的吗?我的意思是,在PHP中你安装了第三方缓存,但是Ruby内置了这个功能,对吗?Timus:这取决于实现,但是在Ruby 1.9和更高版本中,或者在MacRuby、JRuby等中,它是内置在实现中的。不过,它们都使用不同的虚拟机。