Sha256: bed74459545dfa808d84652ed7ec0b10a791580d4a0d75290165f2ae8e6489d7

Contents?: true

Size: 1.45 KB

Versions: 13

Compression:

Stored size: 1.45 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

class ConfigPerfTests < Performance::TestCase
  def setup
    @config = NewRelic::Agent::Configuration::Manager.new
    @config.apply_config(:my_value => "boo")
  end

  def test_raw_access
    iterations.times do
      v = @config[:my_value]
    end
  end

  def test_defaulting_access
    iterations.times do
      v = @config[:log_level]
    end
  end

  def test_missing_key
    iterations.times do
      v = @config[:nope]
    end
  end

  def test_blowing_cache
    iterations.times do
      @config.reset_cache
      v = @config[:my_value]
    end
  end

  def test_deep_config_stack_raw_access(timer)
    with_deep_config_stack

    timer.measure do
      iterations.times do
        v = @config[:my_value]
      end
    end
  end

  def test_deep_config_stack_defaulting_access(timer)
    with_deep_config_stack

    timer.measure do
      iterations.times do
        v = @config[:log_level]
      end
    end
  end

  def test_deep_config_stack_across_all_levels(timer)
    keys = with_deep_config_stack

    timer.measure do
      iterations.times do
        keys.each do |key|
          v = @config[key]
        end
      end
    end
  end


  def with_deep_config_stack
    keys = (0..100).map {|i| "my_value_#{i}".to_sym}
    keys.each do |key|
      @config.apply_config(key => key)
    end
    keys
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
newrelic_rpm-3.8.1.221 test/performance/suites/config.rb
newrelic_rpm-3.8.0.218 test/performance/suites/config.rb
newrelic_rpm-3.7.3.204 test/performance/suites/config.rb
newrelic_rpm-3.7.3.199 test/performance/suites/config.rb
newrelic_rpm-3.7.2.195 test/performance/suites/config.rb
newrelic_rpm-3.7.2.192 test/performance/suites/config.rb
newrelic_rpm-3.7.2.190.beta test/performance/suites/config.rb
newrelic_rpm-3.7.1.188 test/performance/suites/config.rb
newrelic_rpm-3.7.1.182 test/performance/suites/config.rb
newrelic_rpm-3.7.1.180 test/performance/suites/config.rb
newrelic_rpm-3.7.0.177 test/performance/suites/config.rb
newrelic_rpm-3.7.0.174.beta test/performance/suites/config.rb
newrelic_rpm-3.6.9.171 test/performance/suites/config.rb