exponenta event banner

matlab.perftest. TimeExperiment.limitingSamplingError

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

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

Описание

пример

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 является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

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

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

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

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

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

Структура тестирования вычисляет относительный запас погрешности для образца X используя уравнение

relMoE=T∗std (X) среднее значение (X) ∗length (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