Ruby on rails PHP';Ruby的APC模拟?
PHP有不同的操作码缓存,如APC、Zend Optimizer,用于缓存代码并显著加快速度。Ruby有类似的功能吗?Rails中的默认生产设置是: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已经在进行实验性字节码缓存 要启用此功能,
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等中,它是内置在实现中的。不过,它们都使用不同的虚拟机。