Справочные материалы
|
Страница в процессе перевода. |
#
BenchmarkTools.clear_empty! — Method
clear_empty!(group::BenchmarkGroup)
Рекурсивно удаляйте все пустые подгруппы из group.
Используйте это для удаления BenchmarkGroup после обращения к некорректным полям, например, g=BenchmarkGroup(); g[1], без сохранения чего-либо в g[1], что создаст пустую подгруппу g[1].
#
BenchmarkTools.judge — Method
judge(target::BenchmarkGroup, baseline::BenchmarkGroup; [time_tolerance::Float64=0.05])
#
BenchmarkTools.judge — Method
judge(target::TrialEstimate, baseline::TrialEstimate; [time_tolerance::Float64=0.05])
Укажите, представляет ли первая оценка «целевой уровень» регрессию или улучшение по сравнению со второй оценкой «базовый уровень».
#
BenchmarkTools.judge — Method
judge(r::TrialRatio, [time_tolerance::Float64=0.05])
#
BenchmarkTools.ratio — Method
ratio(target::TrialEstimate, baseline::TrialEstimate)
Возвращает отношение целевой оценки к базовой оценке, например, time(target)/time(baseline).
#
BenchmarkTools.tune! — Function
tune!(b::Benchmark, p::Parameters = b.params; verbose::Bool = false, pad = "", kwargs...)
Настройка экземпляра Benchmark.
Если количество вычислений в параметрах p задано вручную, эта функция ничего не делает.
#
BenchmarkTools.tune! — Method
tune!(group::BenchmarkGroup; verbose::Bool = false, pad = "", kwargs...)
Настройка экземпляра BenchmarkGroup. Для большинства тестов tune! необходимо выполнить множество вычислений, чтобы определить правильные параметры для каждого конкретного теста — зачастую больше вычислений, чем выполняется при запуске пробного теста. Фактически, большая часть общего времени тестирования обычно тратится на настройку параметров, а не на сам запуск пробных тестов.
#
BenchmarkTools.@ballocated — Macro
@ballocated expression [other parameters...]
Подобно макросу @allocated, входящему в состав Julia, этот макрос возвращает количество байтов, выделенных при выполнении заданного выражения. Однако он использует макрос @benchmark и принимает все те же дополнительные параметры, что и @benchmark. Возвращаемые значения выделенных памяти соответствуют результатам теста с минимальным затраченным временем, измеренным во время тестирования.
#
BenchmarkTools.@ballocations — Macro
@ballocations expression [other parameters...]
Подобно макросу @allocations, входящему в состав Julia, этот макрос вычисляет выражение, отбрасывая полученное значение, и возвращает общее количество выделений памяти, произведенных во время его выполнения.
В отличие от @allocations, он использует макрос @benchmark из пакета BenchmarkTools и принимает все те же дополнительные параметры, что и @benchmark. Возвращаемое количество выделений памяти соответствует испытанию с минимальным затраченным временем, измеренным во время бенчмарка.
#
BenchmarkTools.@belapsed — Macro
@belapsed expression [other parameters...]
Подобно макросу @elapsed, входящему в состав Julia, этот макрос возвращает прошедшее время (в секундах), необходимое для выполнения заданного выражения. Однако он использует макрос @benchmark и принимает все те же дополнительные параметры, что и @benchmark. Возвращаемое время — это минимальное прошедшее время, измеренное во время теста производительности.
#
BenchmarkTools.@benchmark — Macro
@benchmark <expr to benchmark> [setup=<setup expr>]
Запустите тест производительности для заданного выражения.
Пример
Простейший способ использования этого макроса — поместить его перед тем, что вы хотите протестировать.
julia> @benchmark sin(1)
BenchmarkTools.Trial:
memory estimate: 0 bytes
allocs estimate: 0
--------------
minimum time: 13.610 ns (0.00% GC)
median time: 13.622 ns (0.00% GC)
mean time: 13.638 ns (0.00% GC)
maximum time: 21.084 ns (0.00% GC)
--------------
samples: 10000
evals/sample: 998
Вы можете интерполировать значения в выражениях @benchmark:
# rand(1000) выполняется для каждой оценки
julia> @benchmark sum(rand(1000))
BenchmarkTools.Trial:
memory estimate: 7.94 KiB
allocs estimate: 1
--------------
minimum time: 1.566 μs (0.00% GC)
median time: 2.135 μs (0.00% GC)
mean time: 3.071 μs (25.06% GC)
maximum time: 296.818 μs (95.91% GC)
--------------
samples: 10000
evals/sample: 10
# Функция rand(1000) вычисляется во время определения, и полученное значение
# интерполируется в выражение для бенчмарка
julia> @benchmark sum($(rand(1000)))
BenchmarkTools.Trial:
memory estimate: 0 bytes
allocs estimate: 0
--------------
minimum time: 101.627 ns (0.00% GC)
median time: 101.909 ns (0.00% GC)
mean time: 103.834 ns (0.00% GC)
maximum time: 276.033 ns (0.00% GC)
--------------
samples: 10000
evals/sample: 935
#
BenchmarkTools.@benchmarkable — Macro
@benchmarkable <expr to benchmark> [setup=<setup expr>]
Создайте экземпляр Benchmark для заданного выражения. @benchmarkable имеет аналогичный синтаксис, как и @benchmark. См. также @benchmark.
#
BenchmarkTools.@benchmarkset — Macro
@benchmarkset "title" begin ... end
Создайте набор бенчмарков или несколько наборов бенчмарков, если используется цикл for.
!!! danger @benchmarkset устарел. Вместо этого добавьте в group = BenchmarkGroup() с помощью group[key] = @benchmark...
Примеры
@benchmarkset "suite" for k in 1:5
@case "case $k" rand($k, $k)
end
#
BenchmarkTools.@bprofile — Macro
@bprofile expression [other parameters...]
Запустите @benchmark во время профилирования. Это аналогично
@profile @benchmark expression [other parameters...]
Однако профилирование применяется только к основному выполнению (после компиляции и настройки). Буфер профилирования очищается перед выполнением.
Просмотреть результаты профилирования можно с помощью Profile.print(...). Дополнительную информацию см. в разделе профилирования руководства Julia.
#
BenchmarkTools.@btime — Macro
@btime expression [other parameters...]
Подобно макросу @time, входящему в состав Julia, этот макрос выполняет выражение, выводя время его выполнения и выделенную память, прежде чем вернуть значение выражения.
В отличие от @time, он использует макрос @benchmark и принимает все те же дополнительные параметры, что и @benchmark. Выводимое время — это минимальное время, измеренное во время теста производительности.
#
BenchmarkTools.@btimed — Macro
@btimed expression [other parameters...]
Подобно макросу @timed, входящему в состав Julia, этот макрос выполняет выражение и возвращает NamedTuple, содержащий значение выражения, минимальное затраченное время в секундах, общий объем выделенных байтов, количество выделений памяти и время сборки мусора в секундах во время теста производительности.
В отличие от @timed, он использует макрос @benchmark из пакета BenchmarkTools для более подробных и согласованных измерений производительности. Сообщаемое затраченное время — это минимальное время, измеренное во время теста производительности. Он принимает все дополнительные параметры, поддерживаемые @benchmark.
#
BenchmarkTools.@case — Macro
@case title <expr to benchmark> [setup=<setup expr>]
Пометьте выражение как пример для проверки производительности. Необходимо использовать внутри @benchmarkset.
!!! danger @benchmarkset устарел. Вместо этого добавьте в group = BenchmarkGroup(), используя group[key] = @benchmark...
#
Base.run — Function
run(b::Benchmark[, p::Parameters = b.params]; kwargs...)
Выполняет тест производительности, определенный макросом @benchmarkable.
#
BenchmarkTools.save — Function
BenchmarkTools.save(filename, args...)
Сохраняет сериализованные объекты тестов производительности (например, результаты или параметры) в файле JSON.
#
BenchmarkTools.load — Function
BenchmarkTools.load(filename)
Загружает сериализованные объекты тестов производительности (например, результаты или параметры) из файла JSON.