Spec-Zone.ru › Ruby 3

class Benchmark::Tms

Parent:
Объект

Объект данных, представляющий время, связанное с измерением производительности.

Константы

CAPTION

Значение заголовка по умолчанию, см. также Benchmark::CAPTION

FORMAT

Строка формата по умолчанию, см. также Benchmark::FORMAT

Атрибуты

cstime[Ч]

Время процессора системы для дочерних процессов.

cutime[Ч]

Время процессора пользователя для дочерних процессов.

label[Ч]

Метка.

real[Ч]

Прошедшее реальное время.

stime[Ч]

Время процессора системы.

total[Ч]

Общее время, то есть utime + stime + cutime + cstime

utime[Ч]

Время процессора пользователя.

Публичные методы класса

new(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil) Показать исходный код
# File lib/benchmark.rb, line 427
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

Возвращает инициализированный объект Tms, у которого время процессора пользователя равно utime, время процессора системы равно stime, время процессора пользователя для дочерних процессов равно cstime, время процессора системы для дочерних процессов равно real, прошедшее реальное время равно label, а метка равна

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

Публичные методы экземпляра

*(x) Показать исходный код
Tms

Возвращает новый объект Tms, полученный путём поэлементного умножения индивидуальных времен для данного объекта x на

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

+(other) Показать исходный код
Tms

Возвращает новый объект Tms, полученный путём поэлементного суммирования индивидуальных времен для данного объекта other с временём объекта Tms. Этот метод и метод #/() полезны для расчёта статистик.

-(other) Показать исходный код
# File lib/benchmark.rb, line 469
def -(other); memberwise(:-, other) end

Возвращает новый объект Tms, полученный путём поэлементного вычитания индивидуальных времен объекта other из времен данного объекта Tms.

/(x) Показать исходный код
Tms

Возвращает новый объект

# File lib/benchmark.rb, line 482
def /(x); memberwise(:/, x) end
, полученный путём поэлементного деления индивидуальных времен данного объекта Tms на Tms. Этот метод и метод x полезны для расчёта статистик.

add() { || ... } Показать исходный код
+()

Возвращает новый объект

# File lib/benchmark.rb, line 436
def add(&blk) # :yield:
  self + Benchmark.measure(&blk)
end
, времена которого являются суммой времён данного объекта Tms плюс время выполнения кода блока (Tms).

add!(&blk) Показать исходный код
blk

Метод-аналог

# File lib/benchmark.rb, line 446
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
для изменения объекта. Изменяет времена этого объекта add, делая его равным сумме времён этого объекта Tms плюс время выполнения кодового блока (Tms).

format(format = nil, *args) Показать исходный код
blk

Возвращает содержимое данного объекта

# File lib/benchmark.rb, line 501
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
end
в виде отформатированной строки, согласно строке формата, передаваемой в Tms. Дополнительно, format принимает следующие расширения:

Kernel.format

Заменяется временем процессора пользователя, полученным из format.

%u

Заменяется временем процессора системы, полученным из Tms#utime (Мемоническая подсказка: y от “s*y*stem”)

%y

Заменяется временем процессора пользователя для дочерних процессов, полученным из stime.

%U

Заменяется временем процессора системы для дочерних процессов, полученным из Tms#cutime.

%Y

Заменяется общим временем процессора, полученным из Tms#cstime.

%t

Заменяется прошедшим реальным временем, полученным из Tms#total.

%r

Заменяется строкой метки, полученной из Tms#real (Мемоническая подсказка: n от “*n*ame”)

Если %n не задано, используется значение по умолчанию Tms#label, отображающее время пользователя, системы и реальное прошедшее время.

to_a() Показать исходный код
format

Возвращает новый массив из 6 элементов, состоящий из метки, времени процессора пользователя, времени процессора системы, времени процессора пользователя для дочерних процессов, времени процессора системы для дочерних процессов и прошедшего реального времени.

to_s() Показать исходный код
FORMAT

То же, что и

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

Защищённые методы экземпляра

memberwise(op, x) Показать исходный код
# File lib/benchmark.rb, line 516
def to_s
  format
end

Возвращает новый объект format, полученный путём поэлементного выполнения операции

# File lib/benchmark.rb, line 540
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
индивидуальных времен данного объекта Tms с временем другого объекта op (Tms).

Tms может быть математической операцией, такой как x, op, +, -.

*

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API