Kouhei Sutou
null+****@clear*****
Tue Jan 21 12:30:19 JST 2014
Kouhei Sutou 2014-01-21 12:30:19 +0900 (Tue, 21 Jan 2014) New Revision: 6526f5a777c00858c68e93f3dc118a4575892f79 https://github.com/droonga/drnbench/commit/6526f5a777c00858c68e93f3dc118a4575892f79 Message: Don't touch Runner's subscribers from GradualRunner directly Modified files: lib/drnbench/publish-subscribe/gradual-runner.rb lib/drnbench/publish-subscribe/runner.rb Modified: lib/drnbench/publish-subscribe/gradual-runner.rb (+5 -3) =================================================================== --- lib/drnbench/publish-subscribe/gradual-runner.rb 2014-01-21 12:29:09 +0900 (f1ba061) +++ lib/drnbench/publish-subscribe/gradual-runner.rb 2014-01-21 12:30:19 +0900 (d6022a5) @@ -15,9 +15,10 @@ module Drnbench def run results = [] - @config.n_steps.times do |try_count| - @runner.add_subscribers(@runner.subscribers.size) if try_count > 0 - label = "#{@runner.subscribers.size} subscribers" + @runner.setup + @config.n_steps.times do + @runner.increase_subscribers + label = "#{@runner.n_subscribers} subscribers" percentage = nil result = Benchmark.bm do |benchmark| benchmark.report(label) do @@ -35,6 +36,7 @@ module Drnbench end results << [label, qps] end + @runner.teardown @total_results = [ ["case", "qps"], ] Modified: lib/drnbench/publish-subscribe/runner.rb (+22 -12) =================================================================== --- lib/drnbench/publish-subscribe/runner.rb 2014-01-21 12:29:09 +0900 (ae5aa7d) +++ lib/drnbench/publish-subscribe/runner.rb 2014-01-21 12:30:19 +0900 (9e8f83b) @@ -11,25 +11,40 @@ require "drnbench/server/protocol-adapter" module Drnbench module PublishSubscribe class Runner - attr_reader :subscribers - def initialize(config) @config = config @published_messages = Queue.new end - def run + def n_subscribers + @subscribers.size + end + + def setup setup_server setup_subscribers + end + def teardown + teardown_subscribers + teardown_server + end + + def run publishing_times =****@confi*****_publishings n_will_be_published_messages =****@subsc***** * publishing_times do_feed(publishing_times) - published_messages = receive_messages(n_will_be_published_messages) + receive_messages(n_will_be_published_messages) + end - teardown_server - published_messages + def increase_subscribers + if****@subsc*****? + new_n_subscribers =****@confi*****_n_subscribers + else + new_n_subscribers =****@subsc***** + end + add_subscribers(new_n_subscribers) end private @@ -48,8 +63,6 @@ module Drnbench def setup_subscribers @subscribers = [] - add_subscribers(@config.start_n_subscribers, - @config.n_publishings) end def teardown_subscribers @@ -58,18 +71,15 @@ module Drnbench end end - def add_subscribers(n_subscribers, n_expected_messages) + def add_subscribers(n_subscribers) progressbar = ProgressBar.new("subscribe", n_subscribers, STDERR) n_subscribers.times do message =****@confi*****_subscribe_request client = Droonga::Client.new(:protocol => :http, :host => @config.protocol_adapter.host, :port => @config.protocol_adapter.port) - n_received_messages = 0 client.subscribe(message) do |published_message| @published_messages.push(published_message) - n_received_messages += 1 - break if n_received_messages == n_expected_messages end @subscribers << client progressbar.inc -------------- next part -------------- HTML����������������������������...Download