用途:为 MATLAB 代码编写可重复的性能测试,使用 matlab.perftest.TestCase 框架获得带统计严谨性的计时结果,可用于检测性能回归和持续性能监控。
主要能力:测试类继承 matlab.perftest.TestCase,通过测量边界控制计时范围;支持 keepMeasuring(适用于小于 10ms 的快速代码)、startMeasuring/stopMeasuring(精确控制)以及不设边界(整个方法即工作负载)三种方式;支持 MethodSetupParameter 与 TestParameter 参数化,按数据规模或算法组合生成多个测试点;用 runperf 运行并查看结果,也可用 TimeExperiment.withFixedSampleSize 指定固定采样数。
使用方式:所有准备(数据生成、加载文件、创建对象、路径处理、RNG 播种)必须放在测量边界之外,通常在 TestMethodSetup 或 TestClassSetup 中完成;测量前把属性复制到局部变量,避免把 testCase 索引开销计入;用 rng(42,'twister') 保证数据确定性;测量区域内不要有输出、绘图或文件 I/O。运行示例:results = runperf('MyFeaturePerformanceTest'); 结果可保存为基线,后续比较中位数比值判断回归(如大于 1.2 视为回归)。
适用场景:需要统计置信度的函数基准测试、按输入规模扫描的单元或系统级测试、端到端工作流基准(用 startMeasuring/stopMeasuring,目标 0.5–5 秒)。
限制:快速一次性计时应改用 timeit;优化代码、内存测量和性能剖析不属于本技能范围。每个测试点建议超过 10ms,否则结果不可靠;变异系数高于 10% 说明噪声过大。若 setup 使用参数却声明为 TestParameter,运行时会报错,必须用 MethodSetupParameter。具体模板文件与更多细节以资料所列参考文件为准。