Класс: matlab.perftest.TimeExperiment
Пакет: matlab.perfest
Построение эксперимента по времени с фиксированным количеством измерений
experiment = matlab.perftest.TimeExperiment.withFixedSampleSize( строит временной эксперимент с фиксированным числом измерений. Этот метод возвращает экземпляр numSamples)FixedTimeExperiment.
experiment = matlab.perftest.TimeExperiment.withFixedSampleSize( настраивает временной эксперимент, чтобы сначала разогреть код, выполнив его numSamples,'NumWarmups',numWarmups)numWarmups времена.
numSamples - Количество выборочных измерений для сбораКоличество собираемых выборочных измерений, указанное как положительное целое число. Если указано количество разогревов, в рамках тестирования сначала выполняется код numWarmups время перед сбором numSamples измерения.
numWarmups - Количество измерений прогреваКоличество измерений прогрева, указанное как неотрицательное целое число. numWarmups определяет количество раз, когда тестовый фреймворк выполняет тестовый код для его разогрева. Разогрев кода дает более реалистичный анализ типичного времени выполнения, поскольку минимизирует влияние затрат на выполнение в первый раз.
Пример: experiment = matlab.perftest.TimeExperiment.withFixedSampleSize(24,'NumWarmups',8) создает FixedTimeExperiment который выполняет код 8 раз, чтобы разогреть его, а затем 24 раза, чтобы собрать образцы измерений.
В текущей рабочей папке создайте тест на основе класса, preallocationTest.m, что сравнивает различные методы предварительного распределения.
classdef preallocationTest < matlab.perftest.TestCase methods(Test) function testOnes(testCase) x = ones(1,1e7); end function testIndexingWithVariable(testCase) id = 1:1e7; x(id) = 1; end function testIndexingOnLHS(testCase) x(1:1e7) = 1; end function testForLoop(testCase) for i=1:1e7 x(i) = 1; end end end end
Создайте набор тестов.
suite = testsuite('preallocationTest');Создайте временной эксперимент с фиксированным количеством измерений образцов и выполните тесты.
import matlab.perftest.TimeExperiment
numSamples = 6;
experiment = TimeExperiment.withFixedSampleSize(numSamples);
result = run(experiment,suite);Running preallocationTest .......... .......... .... Done preallocationTest __________
Просмотр действия теста для четвертого теста.
result(4).TestActivity
ans =
Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier
_____________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ _____________________ ________________________________ ____________________________________
preallocationTest/testForLoop true false false 0.90553 sample 29-Dec-2015 12:14:55 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adf
preallocationTest/testForLoop true false false 0.86564 sample 29-Dec-2015 12:14:56 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adf
preallocationTest/testForLoop true false false 0.75888 sample 29-Dec-2015 12:14:57 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adf
preallocationTest/testForLoop true false false 0.74051 sample 29-Dec-2015 12:14:58 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adf
preallocationTest/testForLoop true false false 0.8735 sample 29-Dec-2015 12:14:58 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adf
preallocationTest/testForLoop true false false 0.83188 sample 29-Dec-2015 12:14:59 MY-HOSTNAME win64 9.0.0.320924 (R2016a) [1x1 matlab.unittest.TestResult] a07f34c0-5653-4e01-b814-118fe30d3adfСтруктура тестирования производительности собрала шесть выборочных измерений для каждого теста.
Создайте временной эксперимент, который также выполняет код 3 раза, чтобы разогреть его. Запустите тесты.
numWarmups = 3;
experiment = TimeExperiment.withFixedSampleSize(numSamples,'NumWarmups',numWarmups);
result = run(experiment,suite);Running preallocationTest .......... .......... .... Done preallocationTest __________
Просмотр действия теста для четвертого теста.
result(4).TestActivity
ans =
Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier
_____________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ _____________________ ________________________________ ____________________________________
preallocationTest/testForLoop true false false 0.82972 warmup 29-Dec-2015 12:21:59 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.85917 warmup 29-Dec-2015 12:22:00 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.85857 warmup 29-Dec-2015 12:22:01 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.85307 sample 29-Dec-2015 12:22:02 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.86655 sample 29-Dec-2015 12:22:03 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.81533 sample 29-Dec-2015 12:22:04 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.88266 sample 29-Dec-2015 12:22:04 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 0.94436 sample 29-Dec-2015 12:22:05 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
preallocationTest/testForLoop true false false 1.0375 sample 29-Dec-2015 12:22:07 MY-HOSTNAME win64 9.0.0.316358 (R2016a) [1x1 matlab.unittest.TestResult] 37da664a-feba-4277-975f-3d71bcbac71a
Для каждого теста структура тестирования рабочих характеристик собрала три измерения прогрева в дополнение к шести измерениям образца.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.