class Benchmark::Tms
A data object, representing the times associated with a benchmark measurement.
A data object, representing the times associated with a benchmark measurement.
Constants
- CAPTION
- FMTSTR
Attributes
System CPU time of children
User CPU time of children
Label
Elapsed real time
System CPU time
Total time, that is utime + stime + cutime + cstime
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.
# File lib/benchmark.rb, line 430 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
An in-place version of add.
# File lib/benchmark.rb, line 446 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 #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 #cutime
%Y
-
Replaced by the children's system CPU time, as reported by #cstime
%t
-
Replaced by the total CPU time, as reported by #total
%r
-
Replaced by the elapsed real time, as reported by #real
%n
-
Replaced by the label string, as reported by #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.
# File lib/benchmark.rb, line 501 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.
# File lib/benchmark.rb, line 526 def to_a [@label, @utime, @stime, @cutime, @cstime, @real] end
Same as format.
# File lib/benchmark.rb, line 516 def to_s format end
Protected Instance Methods
# File lib/benchmark.rb, line 531 def memberwise(op, x) case x when Benchmark::Tms Benchmark::Tms.new(utime.__send__(op, x.utime), stime.__send__(op, x.stime), cutime.__send__(op, x.cutime), cstime.__send__(op, x.cstime), real.__send__(op, x.real) ) else Benchmark::Tms.new(utime.__send__(op, x), stime.__send__(op, x), cutime.__send__(op, x), cstime.__send__(op, x), real.__send__(op, x) ) end end