Sha256: ac9a522662b0ba62f388e59767ec01e7a58f1d5a608a19dc83bf7a6e1c322026

Contents?: true

Size: 1.04 KB

Versions: 15

Compression:

Stored size: 1.04 KB

Contents

module Bench
  class Runner
    include Logging
    include Timer
    attr_reader :threads

    def initialize
      @threads = []
      @sessions = []
    end

    def test(concurrency,iterations,&block)
      total_times = times do
        0.upto(concurrency - 1) do |thread_id|
          #sleep rand(2)
          threads << Thread.new(block) do |t|
            0.upto(iterations - 1) do |iteration|
              s = Session.new(thread_id, iteration)
              @sessions << s
              begin
                yield Bench,s
              rescue Exception => e
                puts "error running script: #{e.inspect}"
                puts e.backtrace.join("\n")
              end
            end
          end
        end
        begin
          threads.each { |t| t.join }
        rescue RestClient::RequestTimeout => e
          bench_log "Request timed out #{e}"
        end
      end
      Bench.sessions = @sessions
      Bench.total_time = total_times[0]
      Bench.start_time = total_times[1]
      Bench.end_time = total_times[2]
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rhoconnect-7.6.0 bench/lib/bench/runner.rb
rhoconnect-7.5.1 bench/lib/bench/runner.rb
rhoconnect-7.4.1 bench/lib/bench/runner.rb
rhoconnect-7.1.17 bench/lib/bench/runner.rb
rhoconnect-6.2.0 bench/lib/bench/runner.rb
rhoconnect-6.0.11 bench/lib/bench/runner.rb
rhoconnect-5.5.18 bench/lib/bench/runner.rb
rhoconnect-5.5.17 bench/lib/bench/runner.rb
rhoconnect-5.5.15 bench/lib/bench/runner.rb
rhoconnect-5.5.0.22 bench/lib/bench/runner.rb
rhoconnect-5.5.2 bench/lib/bench/runner.rb
rhoconnect-5.5.0.7 bench/lib/bench/runner.rb
rhoconnect-5.5.0.3 bench/lib/bench/runner.rb
rhoconnect-5.5.0 bench/lib/bench/runner.rb
rhoconnect-5.1.1 bench/lib/bench/runner.rb