ローカル/グローバル変数を使用すると、これらの変数を読み込む際に、メモリー上に新しくデータを複製してしまうのでしょうか?



使用ソフトウェア:
使用ソフトウェア・バージョン: N/A
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
ローカル/グローバル変数を使用すると、これらの変数を読み込む際に、メモリー上に新しくデータを複製してしまうのでしょうか?

解決策:
ローカル/グローバル変数をVIもしくはSUBVI内で毎回読み込む際、メモリ内に新たにデータが複製されてしまいます。
例えば、ローカル/グローバル変数をループ内に設置すると、毎回の読み取りごとに、メモリ上にデータが作成されますが、LabVIEWでは、ループの各反復の後にメモリ量を元に戻すため、自動的にメモリーリークを回避することができます。 しかし、ローカル//グローバル変数の多様は、メモリの量が成長しない一方、メモリ・コピーに時間を浪費してしまうため、正常なデータ・フローと比較すると、全体としての処理能力が遅くなってしまいます。 このため、絶対に必要である場合を除いて、ローカル/グローバル変数を使用することを避けてください。


関連リンク:
KnowledgeBase 28Q6L7B5. Why Does Using Local or Global Variables to Pass Data Between Parallel Loops Cause Unexpected Behavior in LabVIEW?
KnowledeBase 2T9ICKTL. How Can I Optimize the Memory Use in my LabVIEW VI?

添付:





報告日時: 09/09/2003
最終更新日: 12/29/2011
ドキュメントID: 318FFO3N