matlab.perftest.TimeExperiment.limitingSamplingError
クラス: matlab.perftest.TimeExperiment
名前空間: matlab.perftest
指定された許容誤差および信頼度をもつ時間実験を構築
構文
説明
experiment = matlab.perftest.TimeExperiment.limitingSamplingError
は各テスト スイート要素について、指定された統計目標値 (許容誤差、信頼度など) をもつ時間実験を構築します。このメソッドは FrequentistTimeExperiment
のインスタンスを返します。この構文は以下の既定値を使用してサンプル測定値の数を決定します。
ウォームアップ測定の数: 5
サンプルの最小数: 4
他の統計目標値が満たされていない場合に収集するサンプルの最大数: 256
サンプルの相対許容誤差の目標値: 0.05 (5%)
サンプルが相対許容誤差内に収まる信頼度: 0.95 (95%)
experiment = matlab.perftest.TimeExperiment.limitingSamplingError(
は、1 つ以上の名前と値の引数で指定された追加オプションを使用して時間実験を構築します。この構文を使用して、上記の既定値をオーバーライドします。Name,Value
)
入力引数
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: experiment = matlab.perftest.TimeExperiment.limitingSamplingError('RelativeMarginOfError',0.12,'MaxSamples',100)
は、サンプルの相対許容誤差が 12% になるか、100 個の測定値を収集するまで、サンプル測定値を収集する時間実験を作成します。
NumWarmups
— ウォームアップ測定の数
5 (既定値) | 非負の整数
ウォームアップ測定の数。非負の整数として指定します。NumWarmups
は、テスト フレームワークがウォームアップのためにテスト コードを実行する回数を定義します。
MinSamples
— サンプルの最小数
4 (既定値) | 正の整数
サンプル測定の最小数。正の整数として指定します。この値は、フレームワークがウォームアップの実行後、テスト コードを実行する最小回数を定義します。フレームワークはテストが統計目標値を満たしたかどうかにかかわらず、少なくとも MinSamples
回テスト コードを実行します。
MaxSamples
— サンプルの最大数
256 (既定値) | 正の整数
サンプル測定の最大数。正の整数として指定します。この値は、フレームワークが NumWarmups
の後、テスト コードを実行する最大回数を定義します。実験が統計目標値を満たさない場合、フレームワークは最大 MaxSamples
個を収集します。
RelativeMarginOfError
— サンプルの相対許容誤差の目標値
0.05 (既定値) | 正の数値
サンプルの相対許容誤差の目標値。正の数値として指定します。
フレームワークは次の式を使用して、サンプル X
の相対許容誤差を計算します。
ここで T
は、指定された ConfidenceLevel
と自由度 length(X)-1
を使用してスチューデント t 分布から得られる T スコアです。
ConfidenceLevel
— サンプルが相対許容誤差内に収まる信頼度
0.95 (既定値) | 0 ~ 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;
results = run(experiment,suite);
Running preallocationTest .......... .......... .......... ...... Done preallocationTest __________
最初のテストのテスト アクティビティを表示します。このテストについて、パフォーマンス テスト フレームワークは 5 個のウォームアップ測定値 (既定) および 4 個のサンプル測定値を収集しました。4 個のサンプル測定値を収集した後、フレームワークは既定の統計目標値を満たしました。
results(1).TestActivity
ans = 9×12 table Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier __________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ __________________________________ ______________________________ ____________________________________ preallocationTest/testOnes true false false 0.016621 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016783 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016685 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017241 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017496 warmup 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016733 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016654 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.016602 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1 preallocationTest/testOnes true false false 0.017102 sample 12-Oct-2022 16:19:12 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult a04b1262-f4c3-4af5-b68e-ae54a6ae24b1
時間実験の構築により、2 個のウォームアップ測定値を収集し、信頼度 90% の範囲で相対許容誤差 10% のサンプル平均値に達するまで、可変回数のテストを実行します。
experiment = TimeExperiment.limitingSamplingError("NumWarmups",2, ... "RelativeMarginOfError",0.10,"ConfidenceLevel",0.90); results = run(experiment,suite);
Running preallocationTest .......... .......... .... Done preallocationTest __________
最初のテストのテスト アクティビティを表示します。このテストについて、フレームワークは 2 個のウォームアップ測定値と 4 個のサンプル測定値を収集しました。4 個のサンプル測定値を収集した後、フレームワークは指定された統計目標値を満たしました。
results(1).TestActivity
ans = 6×12 table Name Passed Failed Incomplete MeasuredTime Objective Timestamp Host Platform Version TestResult RunIdentifier __________________________ ______ ______ __________ ____________ _________ ____________________ ___________ ________ __________________________________ ______________________________ ____________________________________ preallocationTest/testOnes true false false 0.016576 warmup 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016709 warmup 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016672 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.017231 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.017646 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced preallocationTest/testOnes true false false 0.016836 sample 12-Oct-2022 16:23:04 MY-HOSTNAME win64 9.14.0.2078117 (R2023a) Prerelease 1×1 matlab.unittest.TestResult 932317a8-bb61-4cba-945e-082f38eb0ced
バージョン履歴
R2016a で導入R2023a: ウォームアップ測定の既定数の増加
頻度論的時間実験でウォームアップのためにフレームワークがテスト コードを実行する既定の回数が 4 回から 5 回に増加しました。この変更により、通常、相対許容誤差の目標値を満たすために必要なサンプル数が減ります。
以前の既定値を使用する場合は、コードで値を明示的に指定します。次の表は、4 回のウォームアップ測定を使用してテストを実行するコードの更新方法について例を示しています。
更新前 | 更新後 |
---|---|
import matlab.perftest.TimeExperiment
experiment = TimeExperiment.limitingSamplingError;
results = run(experiment,mySuite); | import matlab.perftest.TimeExperiment experiment = TimeExperiment.limitingSamplingError("NumWarmups",4); results = run(experiment,mySuite); |
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)