matlab.perftest.

Класс: matlab.perftest.
Пакет: matlab.perftest

Создайте эксперимент времени для заданного предела погрешности и доверительного уровня

Синтаксис

experiment = matlab.perftest.TimeExperiment.limitingSamplingError
experiment = matlab.perftest.TimeExperiment.limitingSamplingError(Name,Value)

Описание

пример

experiment = matlab.perftest.TimeExperiment.limitingSamplingError создает эксперимент времени для каждого элемента тестового набора, с заданными статистическими целями (такими как предел погрешности и доверительный уровень). Этот метод возвращает экземпляр FrequentistTimeExperiment. Этот синтаксис использует следующие значения по умолчанию, чтобы определить количество демонстрационных измерений.

  • Количество измерений прогрева: 4

  • Минимальное количество выборок: 4

  • Максимальному количеству выборок, собранных в конечном счете другие статистические цели, не соответствуют: 256

  • Объективный относительный предел погрешности для выборок: 0.05 (5%)

  • Доверительный уровень для выборок, чтобы быть в относительном пределе погрешности: 0.95 (95%)

experiment = matlab.perftest.TimeExperiment.limitingSamplingError(Name,Value) создает эксперимент времени с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value. Используйте этот синтаксис, чтобы заменить упомянутые выше значения по умолчанию.

Входные параметры

развернуть все

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: experiment = matlab.perftest.TimeExperiment.limitingSamplingError('RelativeMarginOfError',0.12,'MaxSamples',100) создает эксперимент времени, который собирает демонстрационные измерения, пока выборки не имеют относительный предел погрешности 12%, или пока он не собирает 100 измерений.

Количество измерений прогрева, заданных как неотрицательное целое число. Значение задает число раз, что среда тестирования осуществляет тестовый код, чтобы нагреть его.

Минимальное количество демонстрационных измерений, заданных как положительное целое число. Значение задает минимальное число раз, что среда тестирования осуществляет тестовый код после любых выполнений прогрева. Среда тестирования осуществляет тестовый код, по крайней мере, времена MinSamples, независимо от того, достигает ли эксперимент статистических целей.

Максимальное количество демонстрационных измерений, заданных как положительное целое число. Значение задает максимальное количество времен, что среда тестирования осуществляет тестовый код после NumWarmups. Если эксперимент не достигает статистических целей, среда тестирования собирается до MaxSamples.

Объективный относительный предел погрешности для выборок, заданных как положительное число.

Среда тестирования вычисляет относительный предел погрешности для демонстрационного X с помощью уравнения

relMoE=Tстанд. (X)среднее значение (X)длина (X)

где T является T-счет от распределения Студента T с помощью заданного ConfidenceLevel и степеней свободы length(X)-1.

Доверительный уровень для выборок, чтобы быть в относительном пределе погрешности, заданном как номер от 0 до 1.

Примеры

развернуть все

В вашей текущей рабочей папке создайте основанный на классах тест, 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
experiment = TimeExperiment.limitingSamplingError;
result = run(experiment,suite);
Running preallocationTest
.......... .......... .......... ..
Done preallocationTest
__________

Просмотрите тестовое действие для первого теста. Ваши результаты могут отличаться.

result(1).TestActivity
ans =

  8×12 table

               Name               Passed    Failed    Incomplete    MeasuredTime    Objective         Timestamp             Host        Platform           Version                      TestResult                          RunIdentifier            
    __________________________    ______    ______    __________    ____________    _________    ____________________    ___________    ________    _____________________    ________________________________    ____________________________________

    preallocationTest/testOnes    true      false       false         0.056052       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.056227       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.055969       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.054961       warmup      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.052572       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051743       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051709       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12
    preallocationTest/testOnes    true      false       false         0.051256       sample      05-Oct-2018 10:14:15    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    34fa8e1d-e21f-42b5-83bd-fd104ffcec12

Для этого теста среда тестирования производительности собрала 4 измерения прогрева (значение по умолчанию) и 11 демонстрационных измерений. После 11 демонстрационных измерений среда тестирования производительности удовлетворила статистические цели по умолчанию.

Создайте эксперимент времени, который собирает два измерения прогрева и запускает тесты переменное число раз, чтобы достигнуть демонстрационного среднего значения с 10%-м относительным пределом погрешности на 90%-м доверительном уровне.

experiment = TimeExperiment.limitingSamplingError('NumWarmups',2,...
    'RelativeMarginOfError',0.10, 'ConfidenceLevel', 0.90);
result = run(experiment, suite);
Running preallocationTest
.......... .......... ....
Done preallocationTest
__________

Просмотрите тестовое действие для первого теста. Ваши результаты могут отличаться.

result(1).TestActivity
ans = 
  6×12 table

               Name               Passed    Failed    Incomplete    MeasuredTime    Objective         Timestamp             Host        Platform           Version                      TestResult                          RunIdentifier            
    __________________________    ______    ______    __________    ____________    _________    ____________________    ___________    ________    _____________________    ________________________________    ____________________________________

    preallocationTest/testOnes    true      false       false         0.053963       warmup      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.053086       warmup      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052502       sample      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false          0.05252       sample      05-Oct-2018 10:21:31    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052048       sample      05-Oct-2018 10:21:32    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1
    preallocationTest/testOnes    true      false       false         0.052434       sample      05-Oct-2018 10:21:32    MY-HOSTNAME     win64      9.6.0.966561 (R2019a)    [1x1 matlab.unittest.TestResult]    22e4507c-e12c-4cac-8730-aff65e75a2e1

Для этого теста среда тестирования производительности собрала два измерения прогрева и девять демонстрационных измерений. После девяти демонстрационных измерений среда тестирования производительности удовлетворила заданные статистические цели.

Введенный в R2016a