Class: Benchmark::Tms
- Inherits:
-
Object
- Object
- Benchmark::Tms
- Defined in:
- lib/benchmark.rb
Overview
A data object, representing the times associated with a benchmark measurement.
Constant Summary collapse
- CAPTION =
" user system total real\n"
- FMTSTR =
"%10.6u %10.6y %10.6t %10.6r\n"
Instance Attribute Summary collapse
-
#cstime ⇒ Object
readonly
System CPU time of children.
-
#cutime ⇒ Object
readonly
User CPU time of children.
-
#label ⇒ Object
readonly
Label.
-
#real ⇒ Object
readonly
Elapsed real time.
-
#stime ⇒ Object
readonly
System CPU time.
-
#total ⇒ Object
readonly
Total time, that is utime + stime + cutime + cstime.
-
#utime ⇒ Object
readonly
User CPU time.
Instance Method Summary collapse
-
#*(x) ⇒ Object
Returns a new Tms object obtained by memberwise multiplication of the individual times for this Tms object by x.
-
#+(other) ⇒ Object
Returns a new Tms object obtained by memberwise summation of the individual times for this Tms object with those of the other Tms object.
-
#-(other) ⇒ Object
Returns a new Tms object obtained by memberwise subtraction of the individual times for the other Tms object from those of this Tms object.
-
#/(x) ⇒ Object
Returns a new Tms object obtained by memberwise division of the individual times for this Tms object by x.
-
#add(&blk) ⇒ Object
Returns a new Tms object whose times are the sum of the times for this Tms object, plus the time required to execute the code block (blk).
-
#add!(&blk) ⇒ Object
An in-place version of #add.
-
#format(arg0 = nil, *args) ⇒ Object
Returns the contents of this Tms object as a formatted string, according to a format string like that passed to Kernel.format.
-
#initialize(u = 0.0, s = 0.0, cu = 0.0, cs = 0.0, real = 0.0, l = nil) ⇒ Tms
constructor
Returns an initialized Tms object which has u as the user CPU time, s as the system CPU time, cu as the children’s user CPU time, cs as the children’s system CPU time, real as the elapsed real time and l as the label.
-
#to_a ⇒ Object
Returns a new 6-element array, consisting of the label, user CPU time, system CPU time, children’s user CPU time, children’s system CPU time and elapsed real time.
-
#to_s ⇒ Object
Same as #format.
Constructor Details
#initialize(u = 0.0, s = 0.0, cu = 0.0, cs = 0.0, real = 0.0, l = nil) ⇒ Tms
Returns an initialized Tms object which has u as the user CPU time, s as the system CPU time, cu as the children’s user CPU time, cs as the children’s system CPU time, real as the elapsed real time and l as the label.
431 432 433 434 |
# File 'lib/benchmark.rb', line 431 def initialize(u = 0.0, s = 0.0, cu = 0.0, cs = 0.0, real = 0.0, l = nil) @utime, @stime, @cutime, @cstime, @real, @label = u, s, cu, cs, real, l @total = @utime + @stime + @cutime + @cstime end |
Instance Attribute Details
#cstime ⇒ Object (readonly)
System CPU time of children
413 414 415 |
# File 'lib/benchmark.rb', line 413 def cstime @cstime end |
#cutime ⇒ Object (readonly)
User CPU time of children
410 411 412 |
# File 'lib/benchmark.rb', line 410 def cutime @cutime end |
#label ⇒ Object (readonly)
Label
422 423 424 |
# File 'lib/benchmark.rb', line 422 def label @label end |
#real ⇒ Object (readonly)
Elapsed real time
416 417 418 |
# File 'lib/benchmark.rb', line 416 def real @real end |
#stime ⇒ Object (readonly)
System CPU time
407 408 409 |
# File 'lib/benchmark.rb', line 407 def stime @stime end |
#total ⇒ Object (readonly)
Total time, that is utime + stime + cutime + cstime
419 420 421 |
# File 'lib/benchmark.rb', line 419 def total @total end |
#utime ⇒ Object (readonly)
User CPU time
404 405 406 |
# File 'lib/benchmark.rb', line 404 def utime @utime end |
Instance Method Details
#*(x) ⇒ Object
Returns a new Tms object obtained by memberwise multiplication of the individual times for this Tms object by x.
476 |
# File 'lib/benchmark.rb', line 476 def *(x); memberwise(:*, x) end |
#+(other) ⇒ Object
Returns a new Tms object obtained by memberwise summation of the individual times for this Tms object with those of the other Tms object. This method and #/() are useful for taking statistics.
463 |
# File 'lib/benchmark.rb', line 463 def +(other); memberwise(:+, other) end |
#-(other) ⇒ Object
Returns a new Tms object obtained by memberwise subtraction of the individual times for the other Tms object from those of this Tms object.
470 |
# File 'lib/benchmark.rb', line 470 def -(other); memberwise(:-, other) end |
#/(x) ⇒ Object
Returns a new Tms object obtained by memberwise division of the individual times for this Tms object by x. This method and #+() are useful for taking statistics.
483 |
# File 'lib/benchmark.rb', line 483 def /(x); memberwise(:/, x) end |
#add(&blk) ⇒ Object
Returns a new Tms object whose times are the sum of the times for this Tms object, plus the time required to execute the code block (blk).
440 441 442 |
# File 'lib/benchmark.rb', line 440 def add(&blk) # :yield: self + Benchmark::measure(&blk) end |
#add!(&blk) ⇒ Object
An in-place version of #add.
447 448 449 450 451 452 453 454 455 |
# File 'lib/benchmark.rb', line 447 def add!(&blk) t = Benchmark::measure(&blk) @utime = utime + t.utime @stime = stime + t.stime @cutime = cutime + t.cutime @cstime = cstime + t.cstime @real = real + t.real self end |
#format(arg0 = nil, *args) ⇒ Object
Returns the contents of this Tms object as a formatted string, according to a format string like that passed to Kernel.format. In addition, #format accepts the following extensions:
%u
-
Replaced by the user CPU time, as reported by Tms#utime.
%y
-
Replaced by the system CPU time, as reported by #stime (Mnemonic: y of “s*y*stem”)
%U
-
Replaced by the children’s user CPU time, as reported by Tms#cutime
%Y
-
Replaced by the children’s system CPU time, as reported by Tms#cstime
%t
-
Replaced by the total CPU time, as reported by Tms#total
%r
-
Replaced by the elapsed real time, as reported by Tms#real
%n
-
Replaced by the label string, as reported by Tms#label (Mnemonic: n of “*n*ame”)
If fmtstr is not given, FMTSTR is used as default value, detailing the user, system and real elapsed time.
502 503 504 505 506 507 508 509 510 511 512 |
# File 'lib/benchmark.rb', line 502 def format(arg0 = nil, *args) fmtstr = (arg0 || FMTSTR).dup fmtstr.gsub!(/(%[-+\.\d]*)n/){"#{$1}s" % label} fmtstr.gsub!(/(%[-+\.\d]*)u/){"#{$1}f" % utime} fmtstr.gsub!(/(%[-+\.\d]*)y/){"#{$1}f" % stime} fmtstr.gsub!(/(%[-+\.\d]*)U/){"#{$1}f" % cutime} fmtstr.gsub!(/(%[-+\.\d]*)Y/){"#{$1}f" % cstime} fmtstr.gsub!(/(%[-+\.\d]*)t/){"#{$1}f" % total} fmtstr.gsub!(/(%[-+\.\d]*)r/){"(#{$1}f)" % real} arg0 ? Kernel::format(fmtstr, *args) : fmtstr end |
#to_a ⇒ Object
Returns a new 6-element array, consisting of the label, user CPU time, system CPU time, children’s user CPU time, children’s system CPU time and elapsed real time.
527 528 529 |
# File 'lib/benchmark.rb', line 527 def to_a [@label, @utime, @stime, @cutime, @cstime, @real] end |
#to_s ⇒ Object
Same as #format.
517 518 519 |
# File 'lib/benchmark.rb', line 517 def to_s format end |