[Groonga-commit] droonga/http-benchmark at 14abe56 [master] Add skelton

Back to archive index

Kenji Okimoto okimo****@clear*****
Mon Oct 7 15:15:04 JST 2013


On 2013年10月07日 14:59, YUKI Hiroshi wrote:
> Author
>     YUKI Hiroshi <shimoda �� clear-code.com>
> Date
>     2013-10-07 14:59:13 +0900 (Mon, 07 Oct 2013)
> New Revision
>     14abe56b9e7cce01cb6029576efda00d39871e69 <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69>
> Message
>
>     Add skelton

 > +  parser.on("--duration=SECONDS",
 > +            "duration of the benmark") do |duration|
 > +    options[:duration] = duration.to_f
 > +  end

parser.on("--duration=SECONDS", Float,
           "duration of the benmark") do |duration|
   options[:duration] = duration
end

 > +  parser.on("--threads=COUNT",
 > +            "count of threads") do |threads|
 > +    options[:threads] = threads.to_i
 > +  end

parser.on("--threads=COUNT", Integer,
           "count of threads") do |threads|
   options[:threads] = threads
end

みたいに、型変換を指定して書くことができます。

あと、この書き方で引数は必須になっているので --duration とかを省略するとたぶん
option_parser.parse!(ARGV)
した時点でエラーになる気がします。

https://github.com/milter-manager/milter-manager/blob/master/tool/milter-performance-check



>
> Added files
>
>       * bin/http-benchmark <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#diff-0>
>       * lib/droonga/http-benchmark.rb <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#diff-1>
>
>    Added: bin/http-benchmark (+29 -0) 100755
> ===================================================================
>
> @@ -0,0 +1,29 @@
> +#!/usr/bin/env ruby
> +# -*- coding: utf-8 -*-
> +
> +require "droonga/http-benchmark"
> +require "optparse"
> +
> +options = {}
> +option_parser = OptionParser.new do |parser|
> +  parser.on("--duration=SECONDS",
> +            "duration of the benmark") do |duration|
> +    options[:duration] = duration.to_f
> +  end
> +  parser.on("--threads=COUNT",
> +            "count of threads") do |threads|
> +    options[:threads] = threads.to_i
> +  end
> +end
> +args = option_parser.parse!(ARGV)
> +
> +if options[:duration].nil?
> +  raise "You must specify the test duration by --duration option."
> +end
> +if options[:threads].nil?
> +  raise "You must specify the count of request threads by --threads option."
> +end
> +
> +benchmark = Droonga::HttpBenchmark.new(:duration => options[:duration],
> +                                       :threads_count => options[:threads])
> +benchmark.run
>
>    Added: lib/droonga/http-benchmark.rb (+17 -0) 100644
> ===================================================================
>
> ...  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1L-1>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 	
>
> ...  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R0>
> 1  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R1>
> 2  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R2>
> 3  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R3>
> 4  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R4>
> 5  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R5>
> 6  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R6>
> 7  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R7>
> 8  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R8>
> 9  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R9>
> 10  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R10>
> 11  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R11>
> 12  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R12>
> 13  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R13>
> 14  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R14>
> 15  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R15>
> 16  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R16>
> 17  <https://github.com/droonga/http-benchmark/commit/14abe56b9e7cce01cb6029576efda00d39871e69#L1R17>
>
> 	
>
> @@ -0,0 +1,17 @@
> +# -*- coding: utf-8 -*-
> +
> +class HttpBenchmark
> +  attr_reader :duration, :threads_count
> +
> +  MIN_DURATION = 1.0
> +  MAX_THREADS_COUNT = 16
> +
> +  def initialize(params)
> +    @duration = [params[:duration], MIN_DURATION].max
> +    @threads_count = [params[:threads_count], MAX_THREADS_COUNT].min
> +  end
> +
> +  def run
> +    raise "not implemented"
> +  end
> +end
>
>
>
> _______________________________________________
> Groonga-commit mailing list
> Groonga-commit �� lists.sourceforge.jp
> http://lists.sourceforge.jp/mailman/listinfo/groonga-commit
>


-- 
Kenji Okimoto <okimoto �� clear-code.com>




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