LabVIEW Pro 專業論壇-教育訓練與認證區-cpu使用率越來越高
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 ✦LabVIEW NXG 特區✦ 高手專訪系列
 熱門關鍵字 
    TOP 資源排行榜    量測概念充電站    取得 NI 協助    3小時內學會 LabVIEW    CLD 考前衝刺
 您的位置:首頁 > 教育訓練與認證區 > cpu使用率越來越高
  教育訓練與認證區   板主:jojo, Gina
 之1(9篇)
cpu使用率越來越高 
 
scott9330
暱稱:hamk
經驗值:169
等級:師傅
發文:11
回文:21
版本:LabVIEW 2013
闖關狀態:
前往地圖:
 
字級設定

我的程式有兩個while迴圈,一個是用rs232傳封包解碼並顯示再chart,一個是透過event掃描按鍵擷取訊號時間的迴圈

但現再出現一個問題是我的cpu會不斷增加,
我已經是過在迴圈中加delay但只是暫時的執行時間過一下子又會飆升,
我也試過使用time loop指定cpu再第一顆跟第三顆週期為1ms但結果上跟加delay一樣。
想請問有沒有人遇過這類問題或是有問題的方向
已解決!轉到解決方案
  文章人氣: 2588 讚:0 文章日期:2018/01/08 14:44
jason1

暱稱:jason
經驗值:2274
等級:舵主
發文:0
回文:87
版本:請選擇
闖關狀態:
英雄殿
前往地圖:
1樓
字級設定

while迴圈不是問題,用2個或10個都沒關係

會造成CPU使用率高,應該是程式中某處執行了大量的計算

沒看到程式無法判斷,有可能是在"解碼"的部分,查看看有無特殊的地方?

 

要測試,可以一個區域一個區域來試,把某個區域刪除再跑看看,如果CPU下降,就是那個部分出問題

 

    讚:0 文章日期:2018/01/09 09:02
kzkobe87

暱稱:KZ
經驗值:712
等級:高手
發文:0
回文:58
版本:LabVIEW 2010
闖關狀態:
飄渺嶺
前往地圖:
2樓
字級設定

檢查你的程式哪個部分長時間下來花最久的時間,那就是那邊出了問題,通常都是程式寫法的問題。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    讚:0 文章日期:2018/01/09 17:14
woodsky

暱稱:小巫
經驗值:820
等級:高手
發文:3
回文:45
版本:LabVIEW 2016
闖關狀態:
迷霧之森
前往地圖:
3樓
字級設定

我之前也是這樣呦~有很多個While迴圈~~只要有其中一個沒有加入Wait Until Next ms Multiple就會讓cpu使用%數上昇~甚至lag或當機。
我通常都是設100ms左右~這可能要依你的功能做調整。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
小小屋簷藏飛燕 樸樸劍鞘掩神兵 歷歷紅塵埋英雄 潺潺忘川蓋三生
    讚:0 文章日期:2018/01/09 18:24
mingyenwei

暱稱:銘延
經驗值:2530
等級:總舵主
發文:4
回文:717
版本:LabVIEW 2013
闖關狀態:
飄渺嶺
前往地圖:
4樓
字級設定

我有些印象,先前給你建議的時候,有一個東西我不知道,所以後來始終導致額外的CPU Loading

 
就是當時碰到Array送進Waveform Chart的時候,一定要先Transpose Array,才能按照習慣的方式送進去。
而Transpose Array這個VI,這個動作,其實會大量的吃資源
 
事實上,可以先Create一個Property Node,選擇Transpose Array。然後把True送給他。讓程式每次開始前都會送True。
設定後,這個元件就會自動依照轉置後的原則來吃資料了。
 
分辨方式,
[1] 用Diagram Disable Structure把程式區的Waveform Chart遮起來。看看會不會改善。
[2] 進一步把資料送進去前的資料轉置(Transpose Array) VI這一段遮起來,看看會不會改善。上面的建議就是針對這一個問題。
 
以上資訊曾貼於另一討論區,不過你好像沒有看到,所以再貼這裡
 
[+]放大圖片
 
    讚:0 文章日期:2018/01/11 11:55
scott9330

暱稱:hamk
經驗值:169
等級:師傅
發文:11
回文:21
版本:LabVIEW 2013
闖關狀態:
前往地圖:
5樓
字級設定

抱歉這麼久才回各位,因為期末很多事,所以先擱下這個問題

目前的狀況是cpu會逐漸增加但大約在40%時又會跳回8%過一陣子又會增加

在顯示上會出現不穩定的狀,每次爬升的時間大約五分鐘左右

波形會在cpu使用率高時出現資料累積在一次送出的狀況

(視覺看起來像是停一下然後又便快顯示)

嚐試方法-----------------------------------------------------------------------------------------------------------

我有嘗試使用各位以上的方法,在迴圈中加上delay 可以避免程式全力運轉但沒有較大的改善

我也有嘗試在chart中的property node轉至陣列但結果沒有太大區別

(但值得一提的是在迴圈中的chart似乎會因為property傳輸的速度關悉造成有時需在下次執行才可轉致)

猜想問題------------------------------------------------------------------------------------------------------------

另外我也在猜想戶出現這個問題適queue累積所以我有試試把queue拿掉,但反而整體的速度都變慢

下方式我的整個程式,為了整裡我將一些部分都轉成subvi所以會有點複雜

subvi有bigdicision301 將解碼完的資料分成四種輸出開始 暫停 ADC資料 GAIN資料

            bo8to401將兩個數字轉為二進制結合再轉為數字輸出

            check03 檢查碼比對 

            dicision203 判斷封包的CMD來改變每次收封包的大小及資料

主程式為swallow2901主要為使用最上方迴圈收封包解碼在用QUEUE傳道下方迴圈顯示,EVENT迴圈作用為按鍵掃描記錄時間。

在麻煩各位了

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
附件檔案:    
swallow2901.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
bigdicision301.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
bo8to401.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
check03.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
dicision203.vi
  版本:LabVIEW 2013
Front Panel
Block Diagram
 
 
    讚:0 文章日期:2018/01/22 18:47
kzkobe87

暱稱:KZ
經驗值:712
等級:高手
發文:0
回文:58
版本:LabVIEW 2010
闖關狀態:
飄渺嶺
前往地圖:
6樓
字級設定

問個問題哦,

大概執行多久使用率會上升,

假如上升後,把程式停止是否會發生無法回應的狀態呢

如果把區域變數換掉會不會改善呢

程式的哪個部分的資料會一直累績,導致資料量過大呢

 

 

 

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    讚:0 文章日期:2018/01/23 11:05
scott9330

暱稱:hamk
經驗值:169
等級:師傅
發文:11
回文:21
版本:LabVIEW 2013
闖關狀態:
前往地圖:
7樓
字級設定

大概五分鐘會上升到40%也不是突然跳上去,中間會震盪一下在升上去,目前是沒有發生無法回應的問題

有點不瞭解將區域變數換掉的意思

在進行串列傳輸時每次傳輸的數據大小不一所以我在想事不是這樣造成程式負擔的

    讚:0 文章日期:2018/01/23 20:04
kzkobe87

暱稱:KZ
經驗值:712
等級:高手
發文:0
回文:58
版本:LabVIEW 2010
闖關狀態:
飄渺嶺
前往地圖:
8樓
字級設定

盡量少使用local variable 應該會比較好一點,

至於數據大小 不一應該是不會造成太大的負擔,除非資料量過大

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    讚:0 文章日期:2018/01/25 08:59
scott9330

暱稱:hamk
經驗值:169
等級:師傅
發文:11
回文:21
版本:LabVIEW 2013
闖關狀態:
前往地圖:
9樓
字級設定

感謝各位留言與建議

小弟終於找到問題了

結果是因為我在收封包時需要暫存每個封包,而我儲存的方式是用陣列

但我使用 insert array造成我每個封包都從第一個位置插入而不是取代所以暫存越存越多

所以我改成replace array並且暫存空間先用initial array設定好大小確保不會增加暫存量

再次感謝各位的幫忙

    讚:0 文章日期:2018/01/29 14:18
 之1(9篇)
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   待回覆文章 
1. 請問如何做字數統計
2. 如何在labview內進行相關矩陣運算
3. 請教:labview處理生理訊號讀取與...
4. 用支持向量機作為-非侵入式負載監測系統
5. 问题请教
 
   Top 5 熱門討論 
1. 【公告中獎名單】下載"快速認識 LabVIEW NXG 的三個秘訣"就抽限量好禮
2. 請問如何做字數統計
3. labview
4. 桌機上的NI-MAX 認不到PXI-1033機箱上的PXI-4072DMM
5. 如何在labview內進行相關矩陣運算
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia