影響程序運(yùn)行速度主要有3方面的因素。
發(fā)布時(shí)間:2014/6/23 20:36:41 訪問次數(shù):4295
1.輸入/輸出
輸入/輸出包括文件讀/寫、數(shù)據(jù)采集、SLG74803KT儀器控制和網(wǎng)絡(luò)通信等,這些操作一般比數(shù)據(jù)計(jì)算費(fèi)時(shí)。這類操作消耗時(shí)間的原因是它們需要涉及茌操作系統(tǒng)的幾層之間傳遞信息。
改進(jìn)的措施是每次執(zhí)行輸入/輸出時(shí)盡可能多傳遞一些數(shù)據(jù),減少I/O的次數(shù)。
例如,在創(chuàng)建一個(gè)數(shù)據(jù)采集VI時(shí),有兩種數(shù)據(jù)讀取方式可供選擇。一種方式為使用單點(diǎn)采集函數(shù),如AI Sample Channel VI;另一種方式為使用多點(diǎn)數(shù)據(jù)傳遞函數(shù),如AIAcquire Waveform VI。如果必須采集到100個(gè)點(diǎn),可用AI Sample Channel VI和“等待”函
數(shù)構(gòu)建一個(gè)計(jì)時(shí)循環(huán),也可用AI Acquire'Waveform VI,通過(guò)參數(shù)設(shè)置使之采集100個(gè)點(diǎn)。
AI Acquire Waveform VI通過(guò)硬件計(jì)時(shí)器來(lái)管理數(shù)據(jù)采集,從而使數(shù)據(jù)采集更為快速精確。此外,AI Acquire Waveform VI的系統(tǒng)開銷與調(diào)用一次AI Sample Channel VI的系統(tǒng)開銷大體相等,但前者所傳遞的數(shù)據(jù)卻多得多。
2.屏幕顯示
頻繁刷新前面板控件是最占用系統(tǒng)時(shí)間的操作之一,特別是對(duì)于圖表和圖形這樣復(fù)雜的顯示控件。所幸的是除了圖表和圖形,一般控件都有一定的智能,除非新的數(shù)據(jù)與原來(lái)的數(shù)據(jù)不同,否則它們不會(huì)進(jìn)行刷新。如果這部分時(shí)間影響了程序的性能,那么只好想辦法減少控件的數(shù)量,并使顯示盡可能簡(jiǎn)單;對(duì)于圖表和圖形來(lái)說(shuō),可關(guān)閉其自動(dòng)調(diào)整標(biāo)尺、平滑更新等功能以加速屏幕顯示。重疊控件的顯示明顯變慢,應(yīng)盡量避免使用。
使用有些控件顯示I]O的數(shù)據(jù)時(shí),應(yīng)盡量一次顯示更多的數(shù)據(jù)。例如,對(duì)于圖表顯示控件來(lái)說(shuō)把數(shù)據(jù)做成一個(gè)數(shù)組,比一個(gè)個(gè)數(shù)據(jù)顯示速度快。
對(duì)于子VI,如果它的面板運(yùn)行時(shí)不顯示,就不必考慮它前面板顯示的時(shí)間。
控件彈出菜單的“高級(jí)一同步顯示”命令,默認(rèn)是關(guān)閉的。這種情況下,在多線程執(zhí)行系統(tǒng)中,當(dāng)執(zhí)行系統(tǒng)傳遞一個(gè)數(shù)據(jù)到前面板控件以后,它立即去繼續(xù)執(zhí)行自己的任務(wù):此后用戶界面系統(tǒng)注意到控件需要更新,它就來(lái)執(zhí)行重繪控件的任務(wù)。這樣加快了程序執(zhí)行的速度,所以一般不要選中同步執(zhí)行選項(xiàng)。
3.其他問題
如果在循環(huán)結(jié)構(gòu)的每個(gè)循環(huán)中都產(chǎn)生同樣的數(shù)據(jù),把這樣的代碼移到循環(huán)框外。
結(jié)構(gòu)中不使用的數(shù)據(jù)連線不要通過(guò)結(jié)構(gòu),以免增加不必要的額外線程。
1.輸入/輸出
輸入/輸出包括文件讀/寫、數(shù)據(jù)采集、SLG74803KT儀器控制和網(wǎng)絡(luò)通信等,這些操作一般比數(shù)據(jù)計(jì)算費(fèi)時(shí)。這類操作消耗時(shí)間的原因是它們需要涉及茌操作系統(tǒng)的幾層之間傳遞信息。
改進(jìn)的措施是每次執(zhí)行輸入/輸出時(shí)盡可能多傳遞一些數(shù)據(jù),減少I/O的次數(shù)。
例如,在創(chuàng)建一個(gè)數(shù)據(jù)采集VI時(shí),有兩種數(shù)據(jù)讀取方式可供選擇。一種方式為使用單點(diǎn)采集函數(shù),如AI Sample Channel VI;另一種方式為使用多點(diǎn)數(shù)據(jù)傳遞函數(shù),如AIAcquire Waveform VI。如果必須采集到100個(gè)點(diǎn),可用AI Sample Channel VI和“等待”函
數(shù)構(gòu)建一個(gè)計(jì)時(shí)循環(huán),也可用AI Acquire'Waveform VI,通過(guò)參數(shù)設(shè)置使之采集100個(gè)點(diǎn)。
AI Acquire Waveform VI通過(guò)硬件計(jì)時(shí)器來(lái)管理數(shù)據(jù)采集,從而使數(shù)據(jù)采集更為快速精確。此外,AI Acquire Waveform VI的系統(tǒng)開銷與調(diào)用一次AI Sample Channel VI的系統(tǒng)開銷大體相等,但前者所傳遞的數(shù)據(jù)卻多得多。
2.屏幕顯示
頻繁刷新前面板控件是最占用系統(tǒng)時(shí)間的操作之一,特別是對(duì)于圖表和圖形這樣復(fù)雜的顯示控件。所幸的是除了圖表和圖形,一般控件都有一定的智能,除非新的數(shù)據(jù)與原來(lái)的數(shù)據(jù)不同,否則它們不會(huì)進(jìn)行刷新。如果這部分時(shí)間影響了程序的性能,那么只好想辦法減少控件的數(shù)量,并使顯示盡可能簡(jiǎn)單;對(duì)于圖表和圖形來(lái)說(shuō),可關(guān)閉其自動(dòng)調(diào)整標(biāo)尺、平滑更新等功能以加速屏幕顯示。重疊控件的顯示明顯變慢,應(yīng)盡量避免使用。
使用有些控件顯示I]O的數(shù)據(jù)時(shí),應(yīng)盡量一次顯示更多的數(shù)據(jù)。例如,對(duì)于圖表顯示控件來(lái)說(shuō)把數(shù)據(jù)做成一個(gè)數(shù)組,比一個(gè)個(gè)數(shù)據(jù)顯示速度快。
對(duì)于子VI,如果它的面板運(yùn)行時(shí)不顯示,就不必考慮它前面板顯示的時(shí)間。
控件彈出菜單的“高級(jí)一同步顯示”命令,默認(rèn)是關(guān)閉的。這種情況下,在多線程執(zhí)行系統(tǒng)中,當(dāng)執(zhí)行系統(tǒng)傳遞一個(gè)數(shù)據(jù)到前面板控件以后,它立即去繼續(xù)執(zhí)行自己的任務(wù):此后用戶界面系統(tǒng)注意到控件需要更新,它就來(lái)執(zhí)行重繪控件的任務(wù)。這樣加快了程序執(zhí)行的速度,所以一般不要選中同步執(zhí)行選項(xiàng)。
3.其他問題
如果在循環(huán)結(jié)構(gòu)的每個(gè)循環(huán)中都產(chǎn)生同樣的數(shù)據(jù),把這樣的代碼移到循環(huán)框外。
結(jié)構(gòu)中不使用的數(shù)據(jù)連線不要通過(guò)結(jié)構(gòu),以免增加不必要的額外線程。
熱門點(diǎn)擊
- 6264芯片的地址范圍
- 影響程序運(yùn)行速度主要有3方面的因素。
- BCD碼
- 焊接溫度和焊接時(shí)間
- 波峰焊通用工藝
- 采用專用工具馬蹄形烙鐵頭焊接
- 改變表面張力與黏度的措施
- 對(duì)濕度敏感器件(MSD)昀管理和控制措施
- COB技術(shù)
- 非ODS清洗介紹
推薦技術(shù)資料
- FU-19推挽功放制作
- FU-19是國(guó)產(chǎn)大功率發(fā)射雙四極功率電二管,EPL20... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究