Spec-Zone.ru › Ruby 3.3

класс Benchmark::Tms

Родитель:
Объект

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

Константы

CAPTION

Стандартная подпись, см. также Benchmark::CAPTION

FORMAT

Стандартная строка формата, см. также Benchmark::FORMAT

Атрибуты

cstime[R]

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

cutime[R]

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

label[R]

Метка

real[R]

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

stime[R]

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

total[R]

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

utime[R]

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

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

new(utime = 0.0, stime = 0.0, cutime = 0.0, cstime = 0.0, real = 0.0, label = nil) Показать исходный код
# File lib/benchmark.rb, line 432
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, время работы процессора пользователя дочерних процессов равно cutime, время работы процессора системы дочерних процессов равно cstime, прошедшее реальное время равно real, а метка равна label.

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

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

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

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

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

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

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

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

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

add() { || ... } Показать исходный код
# File lib/benchmark.rb, line 441
def add(&blk) # :yield:
  self + Benchmark.measure(&blk)
end

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

add!(&blk) Показать исходный код
# File lib/benchmark.rb, line 451
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 плюс время, необходимое для выполнения блока кода (blk).

format(format = nil, *args) Показать исходный код
# File lib/benchmark.rb, line 506
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 в виде отформатированной строки в соответствии со строкой формата, переданной в Kernel.format. Кроме того, format поддерживает следующие расширения:

%u

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

%y

Заменяется временем работы процессора системы, полученным с помощью stime (Мемоника: y от “s*y*stem”)

%U

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

%Y

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

%t

Заменяется общим временем работы процессора, полученным с помощью Tms#total

%r

Заменяется прошедшим реальным временем, полученным с помощью Tms#real

%n

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

Если format не указано, используется значение по умолчанию FORMAT, отображающее время работы процессора пользователя, системы и реальное время.

to_a() Показать исходный код
# File lib/benchmark.rb, line 531
def to_a
  [@label, @utime, @stime, @cutime, @cstime, @real]
end

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

to_h() Показать исходный код
# File lib/benchmark.rb, line 538
def to_h
  {
    label:  @label,
    utime:  @utime,
    stime:  @stime,
    cutime: @cutime,
    cstime: @cstime,
    real:   @real
  }
end

Возвращает хэш, содержащий те же данные, что и ‘to_a`.

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

То же, что и format.

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

memberwise(op, x) Показать исходный код
# File lib/benchmark.rb, line 559
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 может быть математической операцией, такой как +, -, *, /

Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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