Class Benchmark::Tms
In: benchmark.rb
Parent: Object

A data object, representing the times associated with a benchmark measurement.

Methods

*   +   -   /   add   add!   format   new   to_a   to_s  

Constants

CAPTION = " user system total real\n"
FMTSTR = "%10.6u %10.6y %10.6t %10.6r\n"

Attributes

cstime  [R]  System CPU time of children
cutime  [R]  User CPU time of children
label  [R]  Label
real  [R]  Elapsed real time
stime  [R]  System CPU time
total  [R]  Total time, that is utime + stime + cutime + cstime
utime  [R]  User CPU time

Public Class methods

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.

[Source]

# File benchmark.rb, line 423
    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

Public Instance methods

Returns a new Tms object obtained by memberwise multiplication of the individual times for this Tms object by x.

[Source]

# File benchmark.rb, line 468
    def *(x); memberwise(:*, x) end

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.

[Source]

# File benchmark.rb, line 455
    def +(other); memberwise(:+, other) end

Returns a new Tms object obtained by memberwise subtraction of the individual times for the other Tms object from those of this Tms object.

[Source]

# File benchmark.rb, line 462
    def -(other); memberwise(:-, other) end

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.

[Source]

# File benchmark.rb, line 475
    def /(x); memberwise(:/, x) end

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).

[Source]

# File benchmark.rb, line 432
    def add(&blk) # :yield:
      self + Benchmark::measure(&blk) 
    end

An in-place version of add.

[Source]

# File benchmark.rb, line 439
    def add!
      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

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.

[Source]

# File benchmark.rb, line 494
    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

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.

[Source]

# File benchmark.rb, line 519
    def to_a
      [@label, @utime, @stime, @cutime, @cstime, @real]
    end

Same as format.

[Source]

# File benchmark.rb, line 509
    def to_s
      format
    end

[Validate]