로컬과 글로벌 변수를 읽을 때마다 메모리에 데이터의 복사본을 만들게 되나요?



주요한 소프트웨어:
주요한 소프트웨어 버전: N/A
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어: N/A

문제점:
현재 프로그램은 많은 로컬과 글로벌 변수를 사용중입니다. 이러한 변수를 읽을 때마다 메모리에 데이터의 복사본이 만들어져 프로그램의 메모리 영역을 결국 포화시키나요?

솔루션:
VI 또는 SubVI에 위치한 로컬과 글로벌 변수를 읽을 때 마다 메모리에 데이터의 복사본이 만들어 집니다. 즉 매번 로컬 또는 글로벌 변수의 복사본이 메모리에 만들어 집니다.

루프 내에서 로컬 또는 글로벌 변수를 읽게 되면 읽을 때마다 메모리에 복사본을 만들게 되는 것입니다. 하지만, 메모리 부족 현상을 방지하기 위해 LabVIEW는 사용된 메모리 영역 위에 다시 새로운 값을 주입하게 됩니다. 이렇게 되면 메모리 영역은 증가되지 않지만 메모리 복사 시간이 일반 저장에 비해 크므로 프로그램의 민첩성이 떨어집니다. 프로그램 성능의 극대화를 위해서는 로컬과 글로변 변수의 사용을 자제해 주십시오.

관련 링크:
KnowledgeBase 28Q6L7B5: Why Does Using a Local, Global, or Shared Variable 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/21/2011
문서 번호: 318FFO3N