labview的深入探索之全局變量、移位寄存器和LV2全局變量比較
對于內(nèi)置全局變量和FUNCTION GLOBAL(LV2 GLOBAL)的性能LV相關(guān)書籍中的介紹各不相同,甚至是矛盾的,關(guān)于數(shù)據(jù)競爭的問題就不討論了,F(xiàn)UNCTION GLOBAL有明顯的優(yōu)勢,今天主要看看它的運行速度問題,我在以前的文章中提到過讀寫GOBAL需要內(nèi)存拷貝的問題,頻繁調(diào)用內(nèi)存管理器肯定要影響它的速度,而FUNCTION GLOBAL雖然不存在內(nèi)存復(fù)制的問題,但是它需要反復(fù)調(diào)用SUBVI,一定程度上會影響它的速度。
首先看內(nèi)置GLOBAL的SHIFT REGISTER的性能比較。
可以看出SHIFT REGISTER的運行速度遠高于全局變量,這是可以理解的,畢竟SHIFT REGISTER是LV的核心,它的運行肯定是高效率的。
可以看出對一個簡單地標量,GLOBAL的速度還是快于FUNCTION GLOBAL的,不過是在一個數(shù)量級別上。
本次實驗的數(shù)據(jù)類型是簇,內(nèi)部包含兩個元素,2個數(shù)組長度為100的數(shù)組
從上面的實驗結(jié)果可以得出結(jié)論,當數(shù)據(jù)結(jié)構(gòu)非常復(fù)雜時,F(xiàn)UNCTION GLOBAL的效率要高于內(nèi)置全局變量,原因是內(nèi)存復(fù)制的開銷已經(jīng)高于SUBVI調(diào)用的開銷