運行迭代次數大的迴圈時,TestStand內存使用率增加

更新 Nov 13, 2020

產品資訊

軟體

  • TestStand 2016 SP1
  • TestStand 2016
  • TestStand 2014 SP1

問題敘述

每當我在TestStand中使用迭代次數大的迴圈時,TestStand的內存使用量就會不斷增加,並最終導致操作系統內存不足。如何避免這種情況?

解決方案

通常,每次在sequence中使用迴圈時,都需要注意資料量。這是由於以下原因:在迴圈的每次迭代中,都會將一個新元素插入Locals.ResultList變數中,該變數將保存迭代的結果。隨著Locals.ResultList大小的增加,TestStand使用的總內存量也會增加。當處理迭代次數較大的迴圈時,此內存使用量的增加可能會很大。您可能會因為在特定步驟上使用Loop Option,或使用Goto steps來實現迴圈而遇到此問題。您可以透過以下方法避免:

  1. 禁用(Disable)迴圈的資料收集。根據您設置的迴圈類型(例如,step loop options或使用Goto steps實現 迴圈),您將需要執行以下操作之一:

  • 如果使用step loop option,則需要禁用Record Results for Each Iteration選項。為此,請右鍵點擊該step,並且選擇Properties 。點擊Loop Options,然後取消Record Results for Each Iteration選項。若僅在 Run Options tab下禁用記錄結果並不會阻止內存使用量的增加。

  • 如果使用的是Goto step,則需要禁用迴圈內每個step的結果記錄,包括Goto step本身。您可以通過右鍵點擊迴圈中的每個步驟並選擇Properties來完成此操作。點擊Run Options,然後取消Record Result選項 。

  1. 即時生成報告。換句話說,執行每個步驟後,更新報表,並刪除Locals.ResultList的最後一個元素您可以選則Configure»Result Processing ,然後點擊Report plugin中的Options。在Report Options對話框中,啟用On-The-Fly Reporting 。您還應該選擇Configure»Model Options,並啟用Discard Results 或 Disable Results when not Required by Model ,以確保將結果添加到報告後從內存中刪除。
     

相關資訊

通過禁用 Configure»Result Processing並取消選則Report plugin的Enabled checkbox (Configure»Report Options»Disable Report Generation in TestStand 2010 and previous)來禁用報告生成,不會阻止TestStand收集結果。即使沒有生成報告,項目仍將添加到Locals.ResultList中