Sha256: 3870ecec5a879e9f6ca26616d0980eb1cdde89e2fe9295a7463a6ebbb6ec43d6

Contents?: true

Size: 1.93 KB

Versions: 27

Compression:

Stored size: 1.93 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.

require 'pathname'

module Performance
  class ConsoleReporter
    include Reporting

    def initialize(results, elapsed, options={})
      @results = results
      @elapsed = elapsed
      @options = options
    end

    def report
      report_summary
      report_successful_results(successes) unless successes.empty?
      report_failed_results
    end

    def format_measurements(result)
      measurements = result.measurements.merge(:iterations => result.iterations)

      key_width        = measurements.keys.map(&:size).max
      formatted_values = measurements.values.map { |v| sprintf("%g", v) }
      value_width      = formatted_values.map(&:size).max

      rows = measurements.map do |key, value|
        if key == :iterations
          "  %#{key_width}s: %#{value_width}g" % [key, value]
        else
          per_iteration = value / result.iterations.to_f
          "  %#{key_width}s: %#{value_width}g (%.2f / iter)" % [key, value, per_iteration]
        end
      end

      rows.join("\n") + "\n"
    end

    def report_successful_results(results)
      return if successes.empty?

      puts ''
      results.each do |result|
        formatted_duration = FormattingHelpers.format_duration(result.time_per_iteration)
        puts "#{result.identifier}: %.3f ips (#{formatted_duration} / iteration)" % [result.ips]
        unless @options[:brief]
          puts format_measurements(result)
        end
        unless result.artifacts.empty?
          puts "  artifacts:"
          result.artifacts.each do |artifact|
            puts "    #{make_relative(artifact)}"
          end
        end
        puts '' if !@options[:brief] || !result.artifacts.empty?
      end
    end

    def make_relative(path)
      "./#{Pathname.new(path).relative_path_from(Pathname.getwd)}"
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
newrelic_rpm-4.1.0.333 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-4.0.0.332 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.18.1.330 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.18.0.329 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.17.2.327 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.17.1.326 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.17.0.325 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.16.3.323 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.16.2.321 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.16.1.320 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.16.0.318 test/performance/lib/performance/console_reporter.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.15.2.317 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.15.1.316 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.15.0.314 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.14.3.313 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.14.2.312 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.14.1.311 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.14.0.305 test/performance/lib/performance/console_reporter.rb
newrelic_rpm-3.13.2.302 test/performance/lib/performance/console_reporter.rb