Класс: matlab.perftest.TimeExperiment
Пакет: matlab.perftest
Создайте временной эксперимент с фиксированным количеством измерений
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.