Returns an initialized
Tms
object which has
utime
as the user CPU time,
stime
as the system CPU time,
cutime
as the children's user CPU time,
cstime
as the children's system CPU time,
real
as the elapsed real time and
label
as the label.
def initialize(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil)
@utime, @stime, @cutime, @cstime, @real, @label = utime, stime, cutime, cstime, real, label.to_s
@total = @utime + @stime + @cutime + @cstime
Returns a new Tms
object obtained by memberwise multiplication of the individual times for this Tms
object by x
.
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.
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.
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.
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
).
def add(&blk)
self + Benchmark.measure(&blk)
An in-place version of add
. Changes the times of this Tms
object by making it the sum of the times for this Tms
object, plus the time required to execute the code block (blk
).
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
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:
Replaced by the user CPU time, as reported by Tms#utime
.
Replaced by the system CPU time, as reported by stime
(Mnemonic: y of “s*y*stem”)
Replaced by the children's user CPU time, as reported by Tms#cutime
Replaced by the children's system CPU time, as reported by Tms#cstime
Replaced by the total CPU time, as reported by Tms#total
Replaced by the elapsed real time, as reported by Tms#real
Replaced by the label string, as reported by Tms#label
(Mnemonic: n of “*n*ame”)
If format
is not given, FORMAT
is used as default value, detailing the user, system and real elapsed time.
def format(format = nil, *args)
str = (format || FORMAT).dup
str.gsub!(/(%[-+.\d]*)n/) { "#{$1}s" % label }
str.gsub!(/(%[-+.\d]*)u/) { "#{$1}f" % utime }
str.gsub!(/(%[-+.\d]*)y/) { "#{$1}f" % stime }
str.gsub!(/(%[-+.\d]*)U/) { "#{$1}f" % cutime }
str.gsub!(/(%[-+.\d]*)Y/) { "#{$1}f" % cstime }
str.gsub!(/(%[-+.\d]*)t/) { "#{$1}f" % total }
str.gsub!(/(%[-+.\d]*)r/) { "(#{$1}f)" % real }
format ? str % args : str
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.
def to_a
[@label, @utime, @stime, @cutime, @cstime, @real]
Returns a new Tms
object obtained by memberwise operation op
of the individual times for this Tms
object with those of the other Tms
object (x
).
op
can be a mathematical operation such as +
, -
, *
, /
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)
Benchmark::Tms.new(utime.__send__(op, x),
stime.__send__(op, x),
cutime.__send__(op, x),
cstime.__send__(op, x),
real.__send__(op, x)