提高​TestStand​系统​性能 【8】


概览

测试?系统?的?性能?对?生产?线?的?生产?率?和?成本?影响?重大。?运行?缓慢?的?测试?系统?可能?需要?进行?成本?高昂?的?重复?工作?或?缩小?测试?覆盖?范围,?两?种?情况?都?可能?会?影响?质量。?优?化?测试?软件?的?性能?可以?大大?缩短?测试?时间,?并?使用?更少?的?测试?站?实现?更?全面?的?测试。

??本文?讨论?了?对?使用?NI TestStand?软件?开发?的?测试?站?进行?性能?优?化?的?最佳?实践。?请?务必?谨记,?任何?解决?方案?都?不可能?完美无瑕,?很?难?做到?适用?于?所有?测试?系统。?有些?方法?在?某些?测试?系统?中?会?降低?性能,?而?在?另?一些?测试?系统?中?则?能?提高?性能。?在?对?系统?实施?任何?更改?之前?和?之后,?请?抽出?时间?对?测试?结果?进行?基准?测试,?以此?评估?系统?的?潜在?优?缺点。?

内容

  • TestStand?配置?选项
  • 提高?序列?文件?加?载?性能
  • 提高?代码?模?块?性能
  • 通过?并行?测试?提高?测试?性能
  • 优?化?硬件?使用?情况
  • 优?化?结果?处理

TestStand?配置?选项

TestStand?具有?多个?配置?选项,?这些?选项?可能?会?影响?性能。?以下?各节?介绍?了?这些?选项。

  • 序列?跟踪
  • 平衡?执行?速度?和?内存?使用?情况?的?方案

序列?跟踪

序列?跟踪?可?提供?当前?操作?的?即时?反馈?和?状态,?例如“合格”(Pass)、“失败”(Fail)、“错误”(Error)?或“跳?过”(Skipped)。?但?序列?跟踪?会?降低?执行?速度,?从而?影响?性能。?以下?方法?有助?于?提高?执行?速度,?而且?不会?影响?序列?跟踪?带来?的?好处。

为了?在?启用?序列?跟踪?后?提高?性能,?请将?跟踪?速度?设置?为?快速,?确保?步骤?之间?不存在?额外?延迟。?依次?打开“配置”(Configure)?“测试?站?选项”(Station Options),?使用“测试?站?选项”(Station Options)?对话?框?的“执行”(Execution)?选项?卡?对?跟踪?进行?配置。

即使?设置?为?最快?速度,?跟踪?也?会?在?每?个?步骤?执行?后?花费?几?毫秒?的?时间?来?更新“执行?视图”(Execution View)?窗?格。?为了?获得?最快?性能,?可?完全?禁用?跟踪。?不过,?如果?禁用?序列?跟踪,?则?执行?视图?不会?在?执行?序列?时?更新。

要?在?获得?跟踪?优势?的?同时?平衡?性能,?请?使用“序列?调?用?跟踪?设置”(Sequence call trace setting)禁用?特定?子?序列?中的?跟踪。 要?使用?此?方法,?请将?测试?进行?逻辑?分组,?并?为?每?个?组?创建?子?序列。 例如,?在?针对?移动?设备?的?测试?序列?中,?每?个?组?件?(例如?蜂?窝?数据、?用户?输入?和音?频?系统)?的?测试?都可以?在?单独?的?序列?中?实现。?对于?每?个?组?件?的?SequenceCall?步骤,?请在?序列?调?用?中?禁用?跟踪。

  1. 选择“属性”(Properties)?“运行?选项”(Run Options)
  2. 将“序列?调?用?跟踪?设置”(Sequence Call Trace Setting)?属性?设置为“在?序列?中?禁用?跟踪”(Disable tracing in sequence)

通过?这种?方法?组织?测试?序列,?可?对?顶?层?序列?使用?序列?跟踪,?而?不会?因为?跟踪?每?个子?步骤?而?导致?性能?下降。?由于?可以?异步?调?用?每?个子?序列,?因此?这个?方法?也可以?方便?地?应用?到?并行?测试。?关于?并行?测试?序列?的?更多?信息,?请?参阅通过?并行?测试?提高?测试?性能。

?

使用?禁用?跟踪?的?序列?调?用?步骤?来?提高?性能?并?查看?执行?状态

平衡?执行?速度?和?内存?使用?情况?的?方案

借助?TestStand,?可?配置?何时?将?代码?模?块?加?载到?内存?或?从?内存?中?卸?载,?这?可能?会对?测试?序列?的?内存?使用?情况?和?执行?速度?产生?重大?影响。?如果?将?模?块?配置?为?在?内存?中?保留?更?长?的?时间,?则?将?缩短?执行?时间,?因为?在?子?序列?执行?时?无?需?重新?加?载?模?块。 不过,?如果?内存?中?保留?了?太多?模?块,?则?可能?会?超出?应用?程序?内存?限制?或?可用?的?物理?内存,?这?也?会?减慢?执行?速度。

理想?情况?下,?可以?对?测试?系统?进行?改进,?增加?内存?限制,?而不是?卸?载?代码?模?块?以?节省?内存。?例如:

  • 使用?64?位?版本?的?TestStand,?增加?应用?程序?的?内存?限制。?如需?了解?更多?有关?使用?64?位?TestStand?解决?内存?问题?的?信息,?请?查看如何?选择?32?位?TestStand?和?64?位?TestStand帮助?主题  
  • 向?测试?系统?添加?其他?物理?内存。
  • 使用?固态?硬盘?提高?虚拟?内存?性能。

如果?内存?使用?情况?方面?仍然?存在?问题,?可以?在?步骤?级别?或?序列?文件?级别?设置“加?载/?卸?载”(Load/?Unload)?选项。?在?大?多数?测试?系统?中,?可将“打开?序列?文件?时?预?加?载”(Preload when opening sequence file)或“执行?开始?时?预?加?载”(Preload when execution begins)选项与“序列?文件?关闭?时?卸?载”(Unload when sequence file is closed)选项?结合?使用,?从而?实现?卓越?性能。 

目标 理想?设置
最大?化?执行?次数 使用“打开?序列?文件?时?预?加?载”(Preload when opening sequence file)?和“序列?文件?关闭?时?卸?载”(Unload when sequence file is closed),?将?模?块?保留?在?内存?中,?直到?序列?关闭。 如果?在?内存?中?始终?加?载?模?块,?可以?提高?后?续?调?用?的?速度。
减少?内存?使用 使用“动态?加?载”(Load Dynamically)?和“执行?步骤?后?卸?载”(Unload after Step Executes),?以便?在?不再?使用?模?块?时?从?内存?中?删除?模?块。?但是,?由于?每次?执行?步骤?时?都?必须?重新?加?载?模?块,?因此?性能?会?有所?降低。?此?设置?还有?其他?风险,?例如?在?卸?载?一个?代码?模?块?时?可能?会?丢失?该?代码?模?块?中的?全局?数据。

提高?序列?文件?加?载?性能

文件?格式

加?载?较大?的?序列?文件?时,?文件?格式?可能?会?影响?速度?和?性能。?借助?TestStand,?用户?能?以?下列?文件?格式?保存?序列:?INI、?XML?和?二?进制?文件?格式。 

  • 仅?当?必须?能?在?应用?程序?中?查看?文件?且?无法?访问?TestStand?引擎?时,?才能?使用?XML,?例如?使用“序列?文件?查看?器”工具?或?其他?自?定义?查看?器。
  • 只有?在?序列?文件?必须?与?TestStand 3.x?或?更?早?版本?兼容?时?才?使用?INI?格式。
  • 如果?上述?两?种?方法?均?不?适用,?请?使用?二?进制?格式?以?获得?最快?的?加?载?时间。 

要?指定?用于?新?序列?文件?的?格式,?请?执行?以下?操作:  

  1. 选择“配置”(Configure)?“测试?站?选项”(Station Options)
  2. 在“文件”(File)选项?卡?中,?选择“文件?格式?选项”(File Format Options)按钮。 

要?更改?现有?序列?文件?的?格式,?请?执行?以下?操作:

  1. 选择“编辑”(Edit)?“序列?文件?属性”(Sequence File Properties)?
  2. 在“常规”(General)选项?卡?上?选择“文件?格式”(File Format)。
  3. 在“新?文件?的?文件?格式”(File Format for New Files)菜单?中?选择?希望?保存?的?格式。

使用?二?进制?文件?格式?获得?最快?的?序列?文件?加?载?时间

搜索?目录?配置

用?相对?路径?指定?序列?文件?和?代码?模?块?时,?搜索?目录?配置?会?直接?影响?加?载?序列?文件?和?代码?模?块?所需?的?时间。?搜索?目录?配置?会?影响?初始?加?载?和?测试?执行?的?性能,?以及?动态?加?载?模?块?的?后?续?迭代?性能。?可?使用?搜索?目录?配置?对话?框?来?查看?和?编辑?搜索?目录。?选择“配置”(Configure)?“搜索?目录”(Search Directories),?打开“编辑?搜索?目录”(Edit Search Directories)对话?框。?

解析?代码?模?块?相对?路径?时,?TestStand?会?遵循?以下?过程:

  1. 将?代码?模?块?路径?添加?到?第?一个?搜索?目录。
  2. 检查?磁盘?上?是否?存在?绝对?文件?路径。
  • 如果?确实?存在,?则?解析?路径。
  • 如果?不存在,?则?移?至?下?一个?目录。

TestStand?会?检查?搜索?目录?列表,?解析?代码?模?块?文件?的?相对?路径

由于?每?个?搜索?目录?仅?计算?一个?路径,?因此?该?过程?通常?不会?对?性能?造成?显著?影响。 

但是,?如果?搜索?目录?具有“搜索?子?目录”(Search Subdirectories)?选项,?则会?对?指定?路径?内的?每?个子?目录?重复?该?过程。 如果?路径?包含?较大?的?目录?层次?结构,?则?此?选项?会?严重?影响?性能。 此外,?如果?层次?结构?中?存在?多个?名称?相同?的?文件,?加?载?的?文件?可能?有?误。?鉴于?这些?原因,?应?避免?对?添加?的?任何?搜索?目录?使用?此?选项。 请?确保?使用?基本?搜索?目录?的?相对?路径?指定?所有?代码?模?块?路径。

要?进一步?优?化?搜索?目录?的?顺序,?请?遵循?以下?准则:

  • 将?包含?大?多数?代码?模?块?的?目录?置?于?列表?的?前半?部分,?将?不?常用?的?目录?放在?底部。
  • 由于?网络?访问?比?本地?磁盘?访问?速度?慢,?因此?网络?驱动?器?上?的?目录?应?置?于?列表?的?下半?部分。
  • 如果?确实?需要?使用“搜索?子?目录”(Search Subdirectories)?选项,?请将?这些?目录?放在?列表?最?底部,?仅?作?记录。  

在?为?测试?系统?设计?目录?结构?时,?请?考虑?将?代码?模?块?保存?到?序列?文件?路径?下?的?目录?或?特定?的?代码?模?块?位置。  

  • 如果?使用?序列?文件?的?相对?路径,?可?确保?第?一个?搜索?路径?(当前?序列?文件?目录)?始终?返回?正确?的?文件,?并?避免?进行?其他?搜索。?这种?方法?也能?将?整个?文件?夹?移动?到?其他?位置?或?计算?机,?而?不必?更改?搜索?目录。?对于?仅?由?单?个?序列?文件?或?一?组?相关?序列?文件?使用?的?代码?模?块,?请?使用?此?方法。
  • 如果?使用?特定?的?代码?模?块?位置,?可?将?位置?添加?到?搜索?目录?列表,?从而?轻松?引用?不同?序列?文件?中的?代码?模?块。 此?方法?适用?于?由?许多?序列?文件?共享?的?代码?模?块。

提高?代码?模?块?性能

TestStand?可以?在?各种?开发?环境?中?调?用?代码?模?块,?从而?执行?测试?步骤。?这些?代码?模?块?的?配置?和?开发?环境?可能?会对?性能?产生?很大?影响。 在?任何?代码?模?块?环境?中,?都可以?仅?将?必要?的?数据?传?入?和?传?出?代码?模?块,?以此?获得?更好?的?性能。?应?避免?传递?代码?模?块?不会?访问?或?修改?的?大量?数据。

编译?代码?模?块?(DLL)

在?使用?DLL?的?调?试?版?(而?非?发布?版)?时,?诸如.NET?程序?集?或?C/?C?+?+ DLL?之类?的?编译?代码?模?块?可能?会?降低?性能。?通常,?开发?人员?会?在?开发?中?使用?调?试?DLL,?以便?更?轻松?地?查找?和?纠正?模?块?中的?问题。?准备?好?部署?测试?序列?后,?请?切换?到?发布?版?DLL,?以?提高?性能。 

LabVIEW?代码?模块

由于?LabVIEW VI?是?直接?执行?的,?因此?可以?在?LabVIEW?开发?环境?或?LabVIEW Runtime?引擎?中?执行。 在?开发?环境?中?运行?LabVIEW VI?时,?可以?使用?调?试?功能?对?代码?模?块?问题?进行?故障?分析,?但?执行?速度?较?慢。 要?进行?生产?测试,?请?使用?LabVIEW Runtime?引擎?来?调?用?VI。?通过?LabVIEW?适?配?器?对话?框,?可?配置?用于?执行?LabVIEW?代码?的?LabVIEW?服务?器:

  1. 选择“配置”(Configure)?“适?配?器”(Adapters)
  2. 选择?LabVIEW?适?配?器,?然后?单击“配置”(Configure)
  3. 选择?LabVIEW Run-?time?引擎?或?LabVIEW?开发?系统

为了?进一步?优?化?LabVIEW?代码?的?加?载?时间,?可以?将?代码?模?块?VI?内?置?到?打包?项目?库?(PPL)?中。 由于?PPL?包含?代码?模?块?VI?中?所有?VI?依赖?项?的?编译?版本,?因此?LabVIEW?可以?更?快?地?将?依赖?项?加?载到?内存?中。 另外,?如果?使用?TestStand Deployment Utility?部署?代码,?则?可以?在?部署?过程?中?为?VI?生成?PPL。

有关?结合?使用?PPL?与?TestStand Deployment Utility?的?更多?信息,?请?参见使用?LabVIEW?打包?项目?库?整理?测试?程序?文件帮助?主题。

在?新?执行?中?运行?序列?与?在?新?线?程?中?运行?序列?的?区别。

获取?异步?序列?调?用?的?结果

要?获得?用于?生成?报表?或?记录?数据?库?的?异步?子?序列?结果,?请?使用?启动?序列?末尾?的“等待”(Wait)?步骤,?等待?异步?序列?调?用?完成。?子?序列?线?程?完成后,?TestStand?会?将?异步?子?序列?的?结果?附加?到“等待”(Wait)?步骤?结果?中,?以便?用于?报表?生成?和?数据?库?记录。?要?等待?序列?执行?或?线?程,?请在“等待”(Wait)步骤?中?选择“执行”(Execution)或“线?程”(Thread),?以便?控制?和?指定?要?等待?的?执行?或?线?程。 请?记住,?如果?调?用?序列?在?线?程?之前?完成,?添加?此?等待?可能?会?导致?执行?延迟,?因此?仅?当?需要?新?线?程?的?结果?时?才?使用?此?方法

?

使用?等待?步骤?来?获取?异步?序列?调?用?的?结果

并行?测试?多个?待?测?设备

除了?在?测试?序列?中?使用?异步?调?用?之外,?TestStand?还?允许?使用?并行?和?批量?过程?模型?来?并行?测试?多个?待?测?设备。 这些?过程?模型?创建?了?多个?执行,?每?个?执行?都在?单独?的?待?测?设备?上?运行?测试?序列。 可?更改?当前?测试?站?或?单?个?测试?序列?文件?的?过程?模型。

使用?并行?和?批量?过程?模型?同时?测试?多个?待?测?设备

有关?并行?测试?如何?缩短?测试?时间?的?演示,?请?参阅?TestStand?附带的并行?测试?策略?演示

选择?并行?或?批量?过程?模型

借助?并行?过程?模型,?用户?可在?不同?的?时间?开始?和?完成?待?测?设备?的?测试,?而?批量?过程?模型?的?设计?宗旨?是?同时?在?所有?待?测?设备?上?开始?和?完成?测试?序列。 

  • 并行?过程?模型?非常?适合?下列?情况:?使用?单独?的?测试?连接?件,?测试?多个?待?测?设备,?每?个?待?测?设备?单独?测试。  
  • 批量?过程?模型?非常?适合?下列?情况:?使用?通用?测试?连接?件?或?测试?舱,?对待?测?设备?进行?成?组?测试,?所有?待?测?设备?必须?同步?测试

?除了?同时?开始?和?结束?每?个?批量?测试?之外,?批量?过程?模型?还?能?使用?批量?同步?步骤?和?设置?来?进一步?同步?批量?处理?中?所有?待?测?设备?的?测试。?如果?应?针对?所有?待?测?设备?同时?运行?测试?的?某些?部分,?可?使用?步骤?设置?为?单?个?步骤?定义?同步?部分,?或者?使用?批量?同步?步骤?类型?为?多个?步骤?定义?同步?部分。

使用?批量?同步,?确保?测试?的?某些?部分?对于?批量?处理?中的?所有?待?测?设备?都是?同步的

对于?所有?类型?的?批量?同步?部分,?所有?套接?字?都?一起?进入?和?退出?该?部分。 用户?可?进一步?将?同步?配置?为?按?顺序?执行?或?仅?在?单?个?线?程?中?执行。

如需?了解?更多?关于?批量?同步?的?信息,?请?参阅同步?步骤?类型 – 批量?同步示例

并行?测试?的?硬件?注意?事项

并行?测试?多个?待?测?设备?时,?可用?的?测试?硬件?可能?会?变为?性能?瓶颈。 使用?共享?硬件?资源?时,?必须?确保?在?任何?给?定?时间?只有?一个?线?程?在?访问?共享?硬件?资源,?从而?避免?资源?冲突。 用户?通常?使用“锁定”(Lock)?设置?或?步骤?类型?来?保留?共享?资源。 但?如果?多个?线?程?正在?等待?单?个?资源?来?完成?测试,?那么?并行?测试?的?许多?潜在?性能?提升?将?无法?实现。 针对?这种?情况,?可?尝试?以下?方法:

  • 使用“自动?计划”步骤?类型,?在?等待?资源?时?执行?其他?测试。
  • 使用?执行?评?测?工具?查找?导致?瓶颈?的?硬件,?并?添加?其他?测试?硬件。

使用?自动?计划

借助“自动?计划”步骤?类型,?可?配置?一?组?能?以?任何?顺序?执行?的?测试,?从而?优?化?测试?时间?和?硬件?利用?率。 在?使用?并行?或?批量?过程?模型?执行?自动?计划?部分?时,?每?个?套接?字?都会?执行?不需要?保留?资源?的?第一?部分。?因此,?同一?测试?的?不同?执行?之间?的?执行?顺序?可能?会?有所不同

可在?执行?顺序?不是?首要?考虑?因素?时?使用?自动?计划?程序?来?优?化?硬件?利用率

如果?测试?执行?顺序?不是?首要?考虑?因素,?请?使用?此?方法。?如果?测试?要求?按?特定?顺序?显示?测试?结果,?请?不要?使用?自动?计划。

使用?执行?评?测?工具

TestStand?附带?的?执行?评?测?工具?可?用于?识别?限制?测试?系统?执行?速度?的?测试?硬件。 依次?打开“工具”(Tools)?“分析?执行”(Profile Execution),?从?序列?编辑?器?中?启动?执行?评?测?工具。

借助?执行?评?测?器,?可?查看?每?个?硬件?资源?处于?活动?状态?的?时间,?从而?针对?向?测试?系统?添加?硬件?所?产生?的?影响?做出?明智?的?决策。 在?下面?的?示例?分析?中,?DMM?得到?充分利用,?而?示波器?的?利用?率?仅?为?66%。 根据?此?分析,?添加?第二个?DMM?或?具有?更多?通道?的?DMM?将会?缩短?此?序列?的?测试?时间。

借助?执行?评?测?工具,?可?直观?了解?哪些?资源?可能是?测试?配置?中的?瓶颈

优?化?硬件?使用?情况

通过?确保?以?最?有效?的?方式?与?硬件?交互,?缩短?测试?时间。 本?节?讨论?管理?硬件?引用?和?测量?方法?以?提高?性能?的?注意?事项。

优?化?硬件?测量?性能

对于?任何?给?定?的?硬件?配置,?都?存在?一些?可能?会?降低?测试?有效性?的?常见?因素。?例如,?可以?使用?示波器?来?测量?信号?的?上升?时间、?下降?时间、?RMS?和?峰值。?如果?要?对?示波器?进行?编?程?以?捕获?整个?波形,?请将?波形?传输?到?测试?系统,?然后?对?数据?执行?后?处理?以?提取?所需?的?测量?数据,?由于?传输?的?数据?量?很大,?因此?性能?将会?下降。?通信?总?线?的?延迟?也?会?影响?性能,?因此?应?考虑?仪器?是否?具有?高?延迟?(例如?LAN?或?串?行?连接)?或?低?延迟?总?线?(例如?PCI?或?PXI)。

如果?将?示波器?配置?为?测量?上升?时间、?触发?采集、?从?仪器?读?回?上升?时间?并?重复?进行?每次?测量,?则?必须?为?每次?测量?重新?配置?和?重新?触发?示波器。?使用?此?选项,?速度?可能?偏?慢?且?效率?低下。

鉴于?许多?现代?示波器?具有?多个?测量?通道,?请?使用?以下?步骤?来?更?快?地?执行?测试:

  1. 设置?测试,?在?示波器?中?配置?四?个?测量?通道?(为?上述?每?种?测量?分别?配置?一个)。?
  2. 触发?单?次?采集。
  3. 读?回?四?个?测量?通道?中的?每?个?通道。

管理?硬件?引用?寿命

频繁?打开?和?关闭?与?硬件?的?会话?可能?会?导致?性能?降低:?在?初始?化?与?设备?的?通信?时,?许多?驱动?程序?会?传输?大量?数据?来?验证?通信?和?配置。?因此,?最好?在?每?个?测试?中?仅?初始?化?一次?硬件,?同时?保持?会话?句柄,?以便?在?整个?测试?中?访问?硬件。

要?在?测试?中?仅?初始?化?一次?硬件,?可以?使用?ProcessSetup?过程?模型?回?调,?该?回?调?在?所有?测试?代码?之前?运行。 对于?并行?和?批量?过程?模型,?无论?有?多少?测试?套接?字,?ProcessSetup?仅?执行?一次。?要?清除?引用,?可以?使用?ProcessCleanup?回?调,?该?回?调?在?所有?测试?完成后?执行?一次。?有关?创建?和?使用?过程?模型?回?调?的?更多?信息,?请?参见在?NI TestStand?中?使用?回调。

要?访问?在?过程?模型?回?调?中?打开?的?硬件?会话,?可以?使用?在?回?调?序列?和?MainSequence?之间?共享?的?文件?全局?变量。 也可以?使用?会话?管理?器,?通过?activeX?对象?自动?管理?硬件?会话?的?生命?周期。 如需?更多?关于?使用?会话?管理?器?的?信息,?请?参阅会话?管理?器?示例。

优?化?结果?处理

有?多种?方法?可以?优?化?结果?集?对?系统?性能?的?影响。

使用?即时?记录

对于?内?置?结果?处理?器,?可以?选择“即时”(On-?The-?Fly)?选项,?在?序列?执行?时?(而不是?在?测试?序列?结束?时)?执行?记录。 选择?是否?使用?此?设置?时,?请?考虑?以下?优势?和?缺点

即时?记录?的?优势:

  • 允许?测试?操作?员?在?测试?执行?时?查看?报表。
  • 在?测试?程序?出现?严重?错误?的?情况?下?保留?结果。
  • 如果?与?过程?模型?选项?中的“丢弃?结果”(Discard Results)或“模型?不?要求?时?禁用?结果”(Disable Results when not Required by Model)设置?结合?使用,?则?占用?内存?会?比较?少。 启用?此?设置?后,?所有?已?处理?的?结果?将?从?结果?集中?删除,?从而?释放?内存。 对于?生成?报表,?还?必须?在?报表?生成?设置?中?启用“仅?显示?最新?结果”(Only Display Latest Results)?选项,?节省?内存。 

即时?记录?的?缺点:

  • 由于?频繁?登录?占用?内存,?因此?测试?速度?降低。
  • 记录?是在?单独?的?服务?器?中?实现?的,?无法?修改,?因此?更?难以?实现?自?定义。

如果?用户?主要是?为了?实现?即时?记录,?而?不太?在意?速度?稍微?变?慢,?可?通过?调整?即时?设置?来?减轻?性能?影响。 要?访问?这些?设置,?请?执行?以下?操作:

  1. 选择“配置”(Configure)?“结果?处理”(Result Processing)
  2. 选中“显示?更多?选项”(Show More Options)复?选?框,?然后?单击“高级”(Advanced)按钮。

为了?提高?性能,?请?增加?处理?间隔?和/?或?最大?结果?数,?从而?减少?TestStand?记录?结果?的?频率。  

离?线?处理?结果

为了?减少?生成?结果?所需?的?时间,?可?将?结果?数据?记录?在?离?线?结果?文件?中,?该?文件?是?一种?快速?紧凑?的?原始?结果?格式,?其中?包含?TestStand?生成?报表?或?记录?到?数据?库?所需?的?所有?信息。 由于?该?文件?只?包含?原始?结果?数据,?处理?时间?更?短,?因此?可?提高?测试?吞吐量。


使用“离?线?结果?处理?工具”可?将?原始?结果?文件?处理?成?测试?报表,?或?将?数据?记录?到?数据?库?中。?由于?这?是?一个?独立?的?工具,?可以?独立?于?测试?运行,?因此?可以?稍?后?处理?结果?或?在?其他?计算?机上?处理?结果。?如果?保持?测试?系统?性能?的?优先?级?高于?即时?生成?报表,?请?使用?此?工具。?如需?更多?相关?信息,?请?参阅TestStand?离?线?结果?处理?工具帮助?主题。

优?化?数据?存储

尽管?某些?网络?数据?传输?机制?比?其他?机制?更?快,?但是?本地?存储?到?硬盘?驱动?器?的?数据?记录?速度?比?存储?到?网络?位置?的?记录?速度?更?快。?例如,?使用?Microsoft?消息?队列?(MSMQ)?与?数据?库?进行?通信,?这?会?创建?本地?中间?数据?文件,?然后?通过?网络?进行?传输。?通常,?这?比?直接?写?入?远程?数据?库?更?快?且?更?安全。?尽管?TestStand?不?提供?使用?MSMQ?的?原生?功能,?但?可以?使用?第三?方?工具?来?实现?此类?通信。

仅?记录?所需?的?数据

另?一个?需要?考虑?的?因素?是?记录?到?系统?的?数据?量。?随着?记录?数据?量的?增加,?性能?会?有所?下降。?为了?仅?记录?所需?的?数据,?可?禁用?某些?步骤?或?序列?的?结果?记录。

通过?取消?选择“记录?结果”(Record Result)选项(“步骤”(Step)?“属性”(Properties)?“运行?选项”(Run Options)),?可?排除?单?个?步骤?的?记录?结果。?也?可?使用“序列?属性”(Sequence Properties)对话?框?中的“禁用?所有?步骤?的?结果?记录”(Disable Result Recording For All Steps)设置,?设置?整个?序列?以?排除?结果?记录。

失败?后?终止?测试

在?生产?环境?中,?可能?只需要?知道?待?测?设备?存在?失败?测试,?而?不必?具体?了解?是?哪?项?测试。?在?此类?情况?下,?可在?第一次?失败?时?终止?测试?以?释放?系统?资源,?稍?后?再?获得?更?详细?的?故障?分析。 

根据?测试,?某些?故障?可能?比?其他?故障?更?为?严重。?用户?可能?只?希望?在?某些?步骤?失败?时?才?终止?测试。 因此,?可?为?单?个?步骤?或?序列?配置?故障?行为

要?在?特定?步骤?出现?任何?故障?后?结束?测试,?请?执行?以下?操作:

  1. 在“步骤”(Step)?属性?中,?选择“发布?操作”(Post Action)
  2. 在“失败?时”(On Fail)?菜单?中,?选择“终止?执行”(Terminate Execution)

要?在?特定?序列?出现?任何?故障?后?结束?测试,?请?执行?以下?操作:

  1. 在?序列?窗?格?中?右?键?单击?一个?序列,?然后?选择“序列?属性”(Sequence Properties)。
  2. 在“步骤?失败?时”(On Step Failure)?选项?中,?选择“转?到?清除”(Goto Cleanup)。

也可以?为?特定?测试?站?配置?此?设置,?例如?仅?在?生产?测试?机上?提前?终止,?而?始终?在?生产?线?外?的?诊断?机上?完成?完整?测试。 要?配置?特定?的?测试?机?以?在?失败?时?终止?测试,?请?执行?以下?操作:

  1. 选择“配置”(Configure)?“测试?站?选项”(Station Options)
  2. 在?执行?选项?卡?中,?选择“序列?失败?时?立即?转?到?清除”(Immediately Goto Cleanup on Sequence Failure)设置。

本文转自:https://www.ni.com/content/ni/locales/zh-cn/support/documentation/supplemental/08/improving-teststand-system-performance.html