解决方案
通常,每次在序列中使用循环时,都需要注意结果收集。这是由于以下事实:在循环的每次迭代中,都会将一个新元素插入Locals.ResultList数组变量中,该变量将保存该迭代的结果。随着Locals.ResultList大小的增加,TestStand使用的总内存量也会增加。当处理迭代次数较大的循环时,此内存使用量的增加可能会很大。在几种情况下,您可能会遇到此行为:在特定步骤上使用Loop Option,或使用Goto步骤来实现循环。为避免此问题,您可以:
-
禁用循环的结果收集。根据您设置的循环选项的类型(例如,步骤循环选项或使用Goto步骤实现循环),您将需要执行以下操作之一:
-
如果使用步进循环选项,则需要禁用“Record Results for Each Iteration”选项。为此,请右键单击该步骤,然后选择“Properties ” 。单击“Loop Options”选项卡,然后取消选中“Record Results for Each Iteration”选项。仅在“运行选项”选项卡下禁用记录结果不会阻止内存使用量的增加。
-
如果使用的是Goto步骤,则需要禁用循环内每个步骤的结果记录,包括Goto步骤本身。您可以通过右键单击循环中的每个步骤并选择Properties来完成此操作。单击“Run Options”选项卡,然后取消选中“Record Result”选项。
-
即时生成报告。换句话说,执行每个步骤后,将更新报表,并删除Locals.ResultList的最后一个元素。您可以选中“Configure»Result Processing” ,然后单击“报告”插件的“选项”按钮。在“报告选项”对话框中,启用“On-The-Fly Reporting”选项。您还应该选择Configure»Model Options,并启用选项Discard Results 或 Disable Results when not Required by Model,以确保将结果添加到报告后从内存中删除。