ruby AR_cache_benchmarks.rb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby AR_cache_benchmarks.rb相关的知识,希望对你有一定的参考价值。

class InMemoryCache
  def self.instance
    @instance ||= ActiveSupport::Cache.lookup_store(:memory_store)
  end

  def self.method_missing(symbol, *args, &block)
    instance.public_send(symbol, *args, &block)
  end
end

Benchmark.ips do |x|
  x.config(:time => 5, :warmup => 1)
  Division.connection.disable_query_cache!
  ActiveRecord::Base.logger = nil

  x.report('using db') do
    Division.last
  end

  x.report('using redis') do
    Rails.cache.fetch('last_division', exires_in: 15) { Division.last }
  end

  x.report('using local memory') do
    InMemoryCache.fetch('last_division', exires_in: 15) { Division.last }
  end
end


# Calculating -------------------------------------
#             using db    71.000  i/100ms
#         using redis   252.000  i/100ms
#   using local memory   911.000  i/100ms
# -------------------------------------------------
#             using db    707.840  (± 9.2%) i/s -      3.550k
#         using redis      2.615k (±14.3%) i/s -     12.852k
#   using local memory      9.730k (±15.4%) i/s -     48.283k

以上是关于ruby AR_cache_benchmarks.rb的主要内容,如果未能解决你的问题,请参考以下文章

Ruby运算符

Ruby 25 岁了!Ruby 之父说 Ruby 3 有望 3 倍提速

如何学习ruby?Ruby学习技巧分享

ruby Ruby脚本,看看是否用openssl编译了ruby

什么是ruby?

ruby和ruby ee