[Groonga-commit] droonga/drnbench at a6170d9 [master] Unindent

Back to archive index

Kouhei Sutou null+****@clear*****
Wed Oct 16 18:08:37 JST 2013


Kouhei Sutou	2013-10-16 18:08:37 +0900 (Wed, 16 Oct 2013)

  New Revision: a6170d96fde86156047052376a2b1b985293eb63
  https://github.com/droonga/drnbench/commit/a6170d96fde86156047052376a2b1b985293eb63

  Message:
    Unindent

  Modified files:
    lib/drnbench/client/http-droonga-search.rb
    lib/drnbench/client/http.rb
    lib/drnbench/gradual-runner.rb
    lib/drnbench/result.rb
    lib/drnbench/runner.rb

  Modified: lib/drnbench/client/http-droonga-search.rb (+18 -18)
===================================================================
--- lib/drnbench/client/http-droonga-search.rb    2013-10-16 18:07:57 +0900 (ee42e6b)
+++ lib/drnbench/client/http-droonga-search.rb    2013-10-16 18:08:37 +0900 (d92f6b2)
@@ -1,26 +1,26 @@
 # -*- coding: utf-8 -*-
 
 module Drnbench
-    class HttpDroongaSearchClient < HttpClient
-      DEFAULT_PATH = "/droonga/search"
-      DEFAULT_METHOD = "POST"
+  class HttpDroongaSearchClient < HttpClient
+    DEFAULT_PATH = "/droonga/search"
+    DEFAULT_METHOD = "POST"
 
-      def initialize(params)
-        params[:path] ||= DEFAULT_PATH
-        params[:method] ||= DEFAULT_METHOD
-        params[:requests] = populate_http_requests(params[:requests])
-        super
-      end
+    def initialize(params)
+      params[:path] ||= DEFAULT_PATH
+      params[:method] ||= DEFAULT_METHOD
+      params[:requests] = populate_http_requests(params[:requests])
+      super
+    end
 
-      private
-      def populate_http_requests(requests)
-        requests.collect do |queries|
-          {
-            :body => {
-              :queries => queries,
-            },
-          }
-        end
+    private
+    def populate_http_requests(requests)
+      requests.collect do |queries|
+        {
+          :body => {
+            :queries => queries,
+          },
+        }
       end
     end
+  end
 end

  Modified: lib/drnbench/client/http.rb (+47 -47)
===================================================================
--- lib/drnbench/client/http.rb    2013-10-16 18:07:57 +0900 (de6cad5)
+++ lib/drnbench/client/http.rb    2013-10-16 18:08:37 +0900 (9669899)
@@ -5,63 +5,63 @@ require "net/http"
 require "json"
 
 module Drnbench
-    class HttpClient
-      attr_reader :requests, :results, :wait
+  class HttpClient
+    attr_reader :requests, :results, :wait
 
-      DEFAULT_PATH = "/"
-      DEFAULT_METHOD = "GET"
+    DEFAULT_PATH = "/"
+    DEFAULT_METHOD = "GET"
 
-      def initialize(params)
-        @requests = params[:requests]
-        @result = params[:result]
-        @wait = params[:wait]
+    def initialize(params)
+      @requests = params[:requests]
+      @result = params[:result]
+      @wait = params[:wait]
 
-        @default_host = params[:host]
-        @default_port = params[:port]
-        @default_path = params[:path] || DEFAULT_PATH
-        @default_method = params[:method] || DEFAULT_METHOD
-      end
+      @default_host = params[:host]
+      @default_port = params[:port]
+      @default_path = params[:path] || DEFAULT_PATH
+      @default_method = params[:method] || DEFAULT_METHOD
+    end
 
-      def run
-        @thread = Thread.new do
-          loop do
-            request =****@reque*****
-            request[:host] ||= @default_host
-            request[:port] ||= @default_port
-            request[:path] ||= @default_path
-            request[:method] ||= @default_method
-            request[:method] = request[:method].upcase
+    def run
+      @thread = Thread.new do
+        loop do
+          request =****@reque*****
+          request[:host] ||= @default_host
+          request[:port] ||= @default_port
+          request[:path] ||= @default_path
+          request[:method] ||= @default_method
+          request[:method] = request[:method].upcase
 
-            Net::HTTP.start(request[:host], request[:port]) do |http|
-              header = {
-                "user-agent" => "Ruby/#{RUBY_VERSION} Droonga::Benchmark::Runner::HttpClient"
-              }
-              response = nil
-              start_time = Time.now
-              case request[:method]
-              when "GET"
-                response = http.get(request[:path], header)
-              when "POST"
-                body = request[:body]
-                unless body.is_a?(String)
-                  body = JSON.generate(body)
-                end
-                response = http.post(request[:path], body, header)
+          Net::HTTP.start(request[:host], request[:port]) do |http|
+            header = {
+              "user-agent" => "Ruby/#{RUBY_VERSION} Droonga::Benchmark::Runner::HttpClient"
+            }
+            response = nil
+            start_time = Time.now
+            case request[:method]
+            when "GET"
+              response = http.get(request[:path], header)
+            when "POST"
+              body = request[:body]
+              unless body.is_a?(String)
+                body = JSON.generate(body)
               end
-              @result << {
-                :request => request,
-                :status => response.code,
-                :elapsed_time => Time.now - start_time,
-              }
+              response = http.post(request[:path], body, header)
             end
-            sleep @wait
+            @result << {
+              :request => request,
+              :status => response.code,
+              :elapsed_time => Time.now - start_time,
+            }
           end
+          sleep @wait
         end
-        self
       end
+      self
+    end
 
-      def stop
-        @thread.exit
-      end
+    def stop
+      @thread.exit
     end
+  end
 end

  Modified: lib/drnbench/gradual-runner.rb (+64 -64)
===================================================================
--- lib/drnbench/gradual-runner.rb    2013-10-16 18:07:57 +0900 (cb8aa51)
+++ lib/drnbench/gradual-runner.rb    2013-10-16 18:08:37 +0900 (691ec8b)
@@ -4,86 +4,86 @@ require "drnbench/runner"
 require "csv"
 
 module Drnbench
-    class GradualRunner
-      attr_reader :start_n_clients, :end_n_clients, :step
-      attr_reader :report_progressively, :result
+  class GradualRunner
+    attr_reader :start_n_clients, :end_n_clients, :step
+    attr_reader :report_progressively, :result
 
-      DEFAULT_START_N_CLIENTS = 1
-      DEFAULT_END_N_CLIENTS = 1
-      DEFAULT_STEP = 1
+    DEFAULT_START_N_CLIENTS = 1
+    DEFAULT_END_N_CLIENTS = 1
+    DEFAULT_STEP = 1
 
-      def initialize(params)
-        @start_n_clients = params[:start_n_clients] || DEFAULT_START_N_CLIENTS
-        @end_n_clients = params[:end_n_clients] || DEFAULT_END_N_CLIENTS
-        @step = params[:step] || DEFAULT_STEP
-        @report_progressively = params[:report_progressively] || false
-        @params = params
-      end
+    def initialize(params)
+      @start_n_clients = params[:start_n_clients] || DEFAULT_START_N_CLIENTS
+      @end_n_clients = params[:end_n_clients] || DEFAULT_END_N_CLIENTS
+      @step = params[:step] || DEFAULT_STEP
+      @report_progressively = params[:report_progressively] || false
+      @params = params
+    end
 
-      def run
-        run_benchmarks
-        @result
-      end
+    def run
+      run_benchmarks
+      @result
+    end
 
-      private
-      def run_benchmarks
-        @result = Result.new
-        @start_n_clients.step(@end_n_clients, @step) do |n_clients|
-          benchmark = Runner.new(@params.merge(:n_clients => n_clients))
-          if @report_progressively
-            puts "Running benchmark with #{n_clients} clients..."
-          end
-          benchmark.run
-          if @report_progressively
-            puts benchmark.result.to_s
-          end
-          @result << benchmark.result
+    private
+    def run_benchmarks
+      @result = Result.new
+      @start_n_clients.step(@end_n_clients, @step) do |n_clients|
+        benchmark = Runner.new(@params.merge(:n_clients => n_clients))
+        if @report_progressively
+          puts "Running benchmark with #{n_clients} clients..."
+        end
+        benchmark.run
+        if @report_progressively
+          puts benchmark.result.to_s
         end
+        @result << benchmark.result
       end
+    end
 
-      class Result
-        def initialize
-          @results = {}
-        end
+    class Result
+      def initialize
+        @results = {}
+      end
 
-        def <<(result)
-          @statuses = nil
-          @results[result.n_clients] = result
-        end
+      def <<(result)
+        @statuses = nil
+        @results[result.n_clients] = result
+      end
 
-        def statuses
-          @statuses ||= prepare_statuses
-        end
+      def statuses
+        @statuses ||= prepare_statuses
+      end
 
-        def to_csv
-          ([csv_header] + csv_body).collect do |row|
-            CSV.generate_line(row)
-          end.join("")
-        end
+      def to_csv
+        ([csv_header] + csv_body).collect do |row|
+          CSV.generate_line(row)
+        end.join("")
+      end
 
-        private
-        def prepare_statuses
-          statuses = []
-          @results.each do |n_clients, result|
-            statuses += result.statuses.keys
-          end
-          statuses.uniq!
-          statuses.sort!
-          statuses
+      private
+      def prepare_statuses
+        statuses = []
+        @results.each do |n_clients, result|
+          statuses += result.statuses.keys
         end
+        statuses.uniq!
+        statuses.sort!
+        statuses
+      end
 
-        def csv_header
-          Runner::Result.keys + statuses
-        end
+      def csv_header
+        Runner::Result.keys + statuses
+      end
 
-        def csv_body
-          @results.values.collect do |result|
-            result.values +
-            statuses.collect do |status|
-              result.status_percentages[status] || 0
-            end
+      def csv_body
+        @results.values.collect do |result|
+          result.values +
+          statuses.collect do |status|
+            result.status_percentages[status] || 0
           end
         end
       end
     end
+  end
 end

  Modified: lib/drnbench/result.rb (+88 -88)
===================================================================
--- lib/drnbench/result.rb    2013-10-16 18:07:57 +0900 (280f916)
+++ lib/drnbench/result.rb    2013-10-16 18:08:37 +0900 (14fc41c)
@@ -1,112 +1,112 @@
 # -*- coding: utf-8 -*-
 
 module Drnbench
-    class Result
-      attr_reader :n_clients, :duration, :statuses
-
-      class << self
-        def keys
-          [
-            :n_clients,
-            :total_n_requests,
-            :queries_per_second,
-            :min_elapsed_time,
-            :max_elapsed_time,
-            :average_elapsed_time,
-          ]
-        end
+  class Result
+    attr_reader :n_clients, :duration, :statuses
+
+    class << self
+      def keys
+        [
+          :n_clients,
+          :total_n_requests,
+          :queries_per_second,
+          :min_elapsed_time,
+          :max_elapsed_time,
+          :average_elapsed_time,
+        ]
       end
+    end
 
-      def initialize(params)
-        @n_clients = params[:n_clients]
-        @duration = params[:duration]
+    def initialize(params)
+      @n_clients = params[:n_clients]
+      @duration = params[:duration]
 
-        @results = []
-        @total_elapsed_time = 0.0
-        @elapsed_times = []
-        @statuses = {}
-      end
+      @results = []
+      @total_elapsed_time = 0.0
+      @elapsed_times = []
+      @statuses = {}
+    end
 
-      def <<(result)
-        clear_cached_statistics
+    def <<(result)
+      clear_cached_statistics
 
-        @results << result
+      @results << result
 
-        @statuses[result[:status]] ||= 0
-        @statuses[result[:status]] += 1
+      @statuses[result[:status]] ||= 0
+      @statuses[result[:status]] += 1
 
-        @elapsed_times << result[:elapsed_time]
-        @total_elapsed_time += result[:elapsed_time]
-      end
+      @elapsed_times << result[:elapsed_time]
+      @total_elapsed_time += result[:elapsed_time]
+    end
 
-      def total_n_requests
-        @total_n_requests ||=****@resul*****
-      end
+    def total_n_requests
+      @total_n_requests ||=****@resul*****
+    end
 
-      def queries_per_second
-        @queries_per_second ||= total_n_requests.to_f / @duration
-      end
+    def queries_per_second
+      @queries_per_second ||= total_n_requests.to_f / @duration
+    end
 
-      def status_percentages
-        @status_percentages ||= prepare_status_percentages
-      end
+    def status_percentages
+      @status_percentages ||= prepare_status_percentages
+    end
 
-      def min_elapsed_time
-        @min_elapsed_time ||= @elapsed_times.min
-      end
+    def min_elapsed_time
+      @min_elapsed_time ||= @elapsed_times.min
+    end
 
-      def max_elapsed_time
-        @max_elapsed_time ||= @elapsed_times.min
-      end
+    def max_elapsed_time
+      @max_elapsed_time ||= @elapsed_times.min
+    end
 
-      def average_elapsed_time
-        @average_elapsed_time ||= @total_elapsed_time / @elapsed_times.size
-      end
+    def average_elapsed_time
+      @average_elapsed_time ||= @total_elapsed_time / @elapsed_times.size
+    end
 
-      def to_s
-        "Total requests: #{total_n_requests} " +
-          "(#{queries_per_second} queries per second)\n" +
-        "Status:\n" +
-        status_percentages.collect do |status, percentage|
-          "  #{status}: #{percentage} %"
-        end.join("\n") + "\n" +
-        "Elapsed time:\n" +
-        "  min:     #{min_elapsed_time} sec\n" +
-        "  max:     #{max_elapsed_time} sec\n" +
-        "  average: #{average_elapsed_time} sec"
-      end
+    def to_s
+      "Total requests: #{total_n_requests} " +
+        "(#{queries_per_second} queries per second)\n" +
+      "Status:\n" +
+      status_percentages.collect do |status, percentage|
+        "  #{status}: #{percentage} %"
+      end.join("\n") + "\n" +
+      "Elapsed time:\n" +
+      "  min:     #{min_elapsed_time} sec\n" +
+      "  max:     #{max_elapsed_time} sec\n" +
+      "  average: #{average_elapsed_time} sec"
+    end
 
-      def values
-        self.class.keys.collect do |column|
-          send(column)
-        end
+    def values
+      self.class.keys.collect do |column|
+        send(column)
       end
+    end
 
-      private
-      def clear_cached_statistics
-        @total_n_requests = nil
-        @queries_per_second = nil
-        @status_percentages = nil
-        @min_elapsed_time = nil
-        @max_elapsed_time = nil
-        @average_elapsed_time = nil
-      end
+    private
+    def clear_cached_statistics
+      @total_n_requests = nil
+      @queries_per_second = nil
+      @status_percentages = nil
+      @min_elapsed_time = nil
+      @max_elapsed_time = nil
+      @average_elapsed_time = nil
+    end
 
-      def prepare_status_percentages
-        status_percentages = []
-        @statuses.each do |status, n_results|
-          percentage = n_results.to_f / total_n_requests * 100
-          status_percentages << {:percentage => percentage,
-                                 :status => status}
-        end
-        status_percentages.sort! do |a, b|
-          (-1) * (a[:percentage] <=> b[:percentage])
-        end
-        status_percentages = {}
-        status_percentages.each do |status|
-          status_percentages[status[:status]] = status[:percentage]
-        end
-        status_percentages
+    def prepare_status_percentages
+      status_percentages = []
+      @statuses.each do |status, n_results|
+        percentage = n_results.to_f / total_n_requests * 100
+        status_percentages << {:percentage => percentage,
+                               :status => status}
+      end
+      status_percentages.sort! do |a, b|
+        (-1) * (a[:percentage] <=> b[:percentage])
+      end
+      status_percentages = {}
+      status_percentages.each do |status|
+        status_percentages[status[:status]] = status[:percentage]
       end
+      status_percentages
     end
+  end
 end

  Modified: lib/drnbench/runner.rb (+92 -92)
===================================================================
--- lib/drnbench/runner.rb    2013-10-16 18:07:57 +0900 (0d358c8)
+++ lib/drnbench/runner.rb    2013-10-16 18:08:37 +0900 (8e1442f)
@@ -5,114 +5,114 @@ require "drnbench/client/http-droonga-search"
 require "drnbench/result"
 
 module Drnbench
-    class Runner
-      attr_reader :duration, :n_clients, :result
-
-      MIN_DURATION = 1
-      DEFAULT_DURATION = 10
-      MIN_WAIT = 0
-      DEFAULT_WAIT = 1
-      MAX_N_CLIENTS = 16
-      DEFAULT_N_CLIENTS = 1
-      TOTAL_N_REQUESTS = 1000
-
-      DEFAULT_HOST = "localhost"
-      DEFAULT_PORT = 80
-
-      def initialize(params)
-        @duration = [params[:duration] || DEFAULT_DURATION, MIN_DURATION].max
-        @n_clients = [params[:n_clients] || DEFAULT_N_CLIENTS, MAX_N_CLIENTS].min
-        @n_requests = params[:n_requests] || TOTAL_N_REQUESTS
-
-        params[:host] ||= DEFAULT_HOST
-        params[:port] ||= DEFAULT_PORT
-        params[:wait] ||= DEFAULT_WAIT
-        params[:wait] = [params[:wait], MIN_WAIT].max
-
-        @params = params
-
-        if params[:request_pattern]
-          params[:request_pattern][:frequency] = 1
-          @request_patterns = [params[:request_pattern]]
-        else
-          @request_patterns = params[:request_patterns]
-        end
-        populate_requests
+  class Runner
+    attr_reader :duration, :n_clients, :result
+
+    MIN_DURATION = 1
+    DEFAULT_DURATION = 10
+    MIN_WAIT = 0
+    DEFAULT_WAIT = 1
+    MAX_N_CLIENTS = 16
+    DEFAULT_N_CLIENTS = 1
+    TOTAL_N_REQUESTS = 1000
+
+    DEFAULT_HOST = "localhost"
+    DEFAULT_PORT = 80
+
+    def initialize(params)
+      @duration = [params[:duration] || DEFAULT_DURATION, MIN_DURATION].max
+      @n_clients = [params[:n_clients] || DEFAULT_N_CLIENTS, MAX_N_CLIENTS].min
+      @n_requests = params[:n_requests] || TOTAL_N_REQUESTS
+
+      params[:host] ||= DEFAULT_HOST
+      params[:port] ||= DEFAULT_PORT
+      params[:wait] ||= DEFAULT_WAIT
+      params[:wait] = [params[:wait], MIN_WAIT].max
+
+      @params = params
+
+      if params[:request_pattern]
+        params[:request_pattern][:frequency] = 1
+        @request_patterns = [params[:request_pattern]]
+      else
+        @request_patterns = params[:request_patterns]
       end
+      populate_requests
+    end
 
-      def run
-        process_requests
-        @result
-      end
+    def run
+      process_requests
+      @result
+    end
 
-      private
-      def process_requests
-        requests_queue = Queue.new
-        @result = Result.new(:n_clients => @n_clients,
-                             :duration => @duration)
-
-        client_params =****@param*****(:requests => requests_queue,
-                                      :result => @result)
-        @clients = @n_clients.times.collect do |index|
-          client = nil
-          case @params[:mode]
-          when :http
-            client = HttpClient.new(client_params)
-          when :http_droonga_search
-            client = HttpDroongaSearchClient.new(client_params)
-          end
-          client.run
-          client
+    private
+    def process_requests
+      requests_queue = Queue.new
+      @result = Result.new(:n_clients => @n_clients,
+                           :duration => @duration)
+
+      client_params =****@param*****(:requests => requests_queue,
+                                    :result => @result)
+      @clients = @n_clients.times.collect do |index|
+        client = nil
+        case @params[:mode]
+        when :http
+          client = HttpClient.new(client_params)
+        when :http_droonga_search
+          client = HttpDroongaSearchClient.new(client_params)
         end
+        client.run
+        client
+      end
 
-        start_time = Time.now
-        while Time.now - start_time < @duration
-          if requests_queue.empty?
-            @requests.each do |request|
-              requests_queue.push(request)
-            end
+      start_time = Time.now
+      while Time.now - start_time < @duration
+        if requests_queue.empty?
+          @requests.each do |request|
+            requests_queue.push(request)
           end
-          sleep 1
-        end
-
-        @clients.each do |client|
-          client.stop
         end
+        sleep 1
+      end
 
-        @result
+      @clients.each do |client|
+        client.stop
       end
 
-      def populate_requests
-        @requests = []
+      @result
+    end
+
+    def populate_requests
+      @requests = []
 
-        if @request_patterns.is_a?(Array)
-          @request_patterns.each do |request_pattern|
-            populate_request_pattern(request_pattern)
-          end
-        else
-          @request_patterns.each do |key, request_pattern|
-            populate_request_pattern(request_pattern)
-          end
+      if @request_patterns.is_a?(Array)
+        @request_patterns.each do |request_pattern|
+          populate_request_pattern(request_pattern)
+        end
+      else
+        @request_patterns.each do |key, request_pattern|
+          populate_request_pattern(request_pattern)
         end
-
-        @requests.shuffle!
       end
 
-      def populate_request_pattern(request_pattern)
-        frequency = request_pattern[:frequency].to_f
-        n_requests = @n_requests * frequency
+      @requests.shuffle!
+    end
 
-        base_patterns = nil
-        if request_pattern[:pattern]
-          base_patterns = [request_pattern[:pattern]]
-        else
-          base_patterns = request_pattern[:patterns]
-        end
-        base_patterns = base_patterns.shuffle
+    def populate_request_pattern(request_pattern)
+      frequency = request_pattern[:frequency].to_f
+      n_requests = @n_requests * frequency
 
-        n_requests.round.times do |count|
-          @requests << base_patterns[count % base_patterns.size]
-        end
+      base_patterns = nil
+      if request_pattern[:pattern]
+        base_patterns = [request_pattern[:pattern]]
+      else
+        base_patterns = request_pattern[:patterns]
+      end
+      base_patterns = base_patterns.shuffle
+
+      n_requests.round.times do |count|
+        @requests << base_patterns[count % base_patterns.size]
       end
     end
+  end
 end
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index