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  |