From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
|
グローバル変数
グローバル変数は特殊なグローバルVI内に存在し、アプリケーションのフローとは切り離されています。
別のVIからグローバル変数にアクセスすると、そのVIはグローバル変数のコピーをメモリ上に割り当てます。
このコピーは、呼び出しVIがメモリからアンロードされると解放されます。大規模なサイズの配列やその他サイズの大きい変数のコピーは負担が大きく、時間を要する場合があることにご注意ください。
ローカル変数
ローカル変数のメモリ割り当ては、呼び出しVIがメモリにロードされる際に行われます。呼び出しVIがスタンドアローンVIの場合、ローカル変数のメモリはランタイム時に割り当てられ、VI実行終了後に解放されます。メインVIに静的にロードされたサブVI内でローカル変数が宣言された場合、メインVIがメモリ上にロードされた際にローカル変数へメモリが割り当てられ、メインVIがアンロードされた直後にLabVIEWメモリマネージャにより、ローカル変数へのメモリは解放されます。下図のようにサブVIが動的に呼び出された場合は、サブVI呼び出し時にローカル変数へメモリが割り当てられ、サブVIがアンロードされた直後にLabVIEWメモリマネージャにより、メモリは解放されます。
メモリ解放
ローカル変数やグローバル変数用に確保されたメモリをLabVIEW上でプログラム的に解放する方法はありません。しかし、サブVIの実行用に確保されたメモリを最上位VIの終了前に解放することはできます。サブVIの実行終了後にメモリ解放要求(アプリケーション制御 メモリ管理)を呼び出し、サブVIに割り当てられたメモリを破棄します。
|