Class: Benchmark::Tms
Overview
A data object, representing the times associated with a benchmark measurement.
Constant Summary collapse
- CAPTION =
Default caption, see also Benchmark::CAPTION
" user system total real\n"
- FORMAT =
Default format string, see also Benchmark::FORMAT
"%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(format = 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(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil) ⇒ Tms
constructor
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.
-
#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_h ⇒ Object
Returns a hash containing the same data as
to_a
. -
#to_s ⇒ Object
Same as #format.
Constructor Details
#initialize(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil) ⇒ Tms
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.
422 423 424 425 |
# File 'opal/stdlib/benchmark.rb', line 422 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 end |
Instance Attribute Details
#cstime ⇒ Object (readonly)
System CPU time of children
405 406 407 |
# File 'opal/stdlib/benchmark.rb', line 405 def cstime @cstime end |
#cutime ⇒ Object (readonly)
User CPU time of children
402 403 404 |
# File 'opal/stdlib/benchmark.rb', line 402 def cutime @cutime end |
#label ⇒ Object (readonly)
Label
414 415 416 |
# File 'opal/stdlib/benchmark.rb', line 414 def label @label end |
#real ⇒ Object (readonly)
Elapsed real time
408 409 410 |
# File 'opal/stdlib/benchmark.rb', line 408 def real @real end |
#stime ⇒ Object (readonly)
System CPU time
399 400 401 |
# File 'opal/stdlib/benchmark.rb', line 399 def stime @stime end |
#total ⇒ Object (readonly)
Total time, that is +utime+ + +stime+ + +cutime+ + +cstime+
411 412 413 |
# File 'opal/stdlib/benchmark.rb', line 411 def total @total end |
#utime ⇒ Object (readonly)
User CPU time
396 397 398 |
# File 'opal/stdlib/benchmark.rb', line 396 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.
467 |
# File 'opal/stdlib/benchmark.rb', line 467 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.
454 |
# File 'opal/stdlib/benchmark.rb', line 454 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.
461 |
# File 'opal/stdlib/benchmark.rb', line 461 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.
474 |
# File 'opal/stdlib/benchmark.rb', line 474 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+).
431 432 433 |
# File 'opal/stdlib/benchmark.rb', line 431 def add(&blk) # :yield: self + Benchmark.measure(&blk) end |
#add!(&blk) ⇒ Object
An in-place version of #add.
438 439 440 441 442 443 444 445 446 |
# File 'opal/stdlib/benchmark.rb', line 438 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(format = 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 format is not given, FORMAT is used as default value, detailing the user, system and real elapsed time.
493 494 495 496 497 498 499 500 501 502 503 |
# File 'opal/stdlib/benchmark.rb', line 493 def format(format = nil, *args) str = (format || FORMAT).dup .gsub(/(%[-+.\d]*)n/) { "#{$1}s" % label } .gsub(/(%[-+.\d]*)u/) { "#{$1}f" % utime } .gsub(/(%[-+.\d]*)y/) { "#{$1}f" % stime } .gsub(/(%[-+.\d]*)U/) { "#{$1}f" % cutime } .gsub(/(%[-+.\d]*)Y/) { "#{$1}f" % cstime } .gsub(/(%[-+.\d]*)t/) { "#{$1}f" % total } .gsub(/(%[-+.\d]*)r/) { "(#{$1}f)" % real } format ? str % args : str 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.
518 519 520 |
# File 'opal/stdlib/benchmark.rb', line 518 def to_a [@label, @utime, @stime, @cutime, @cstime, @real] end |
#to_h ⇒ Object
Returns a hash containing the same data as to_a
.
525 526 527 528 529 530 531 532 533 534 |
# File 'opal/stdlib/benchmark.rb', line 525 def to_h { label: @label, utime: @utime, stime: @stime, cutime: @cutime, cstime: @cstime, real: @real } end |
#to_s ⇒ Object
Same as #format.
508 509 510 |
# File 'opal/stdlib/benchmark.rb', line 508 def to_s format end |