VI는 사용자가 편집하는 그래픽 소스 코드, 이 코드의 컴파일된 버전으로 LabVIEW가 VI를 실행하는데 사용하는 코드, 이렇게 두 가지 코드를 포함하도록 기본설정되어 있습니다. VI의 소스 코드를 편집하면, LabVIEW는 자동으로 VI를 다시 컴파일해서 컴파일된 버전의 코드에 변경사항을 반영합니다. 또한 LabVIEW는 변경된 VI를 호출하는 모든 VI를 자동으로 다시 컴파일하기 때문에, 저장되지 않은 변경사항이 호출 VI에 생깁니다. 호출하는 VI가 소스 컨트롤에 저장되어 있는 경우, 저장되지 않은 대기 중인 변경사항 때문에 이 VI의 SubVI를 업데이트할 때 VI를 체크아웃해야만 합니다.

이 문제를 피하기위해 LabVIEW에서는 VI의 그래픽 소스 코드로부터 컴파일된 코드를 분리할 수 있도록 합니다. VI에서 컴파일된 코드를 분리한 후, LabVIEW는 SubVI를 수정할 때 다시 이 VI를 컴파일합니다. 그러나 LabVIEW는 다시 컴파일된 버전의 소스를 소스 컨트롤의 VI에 저장하는 대신, 컴파일된 객체 캐시에 저장합니다. 소스 컨트롤의 VI는 변경되지 않기 때문에, SubVI를 변경할 때 소스 컨트롤에서 이 VI를 체크아웃하지 않아도 됩니다.

컴파일된 코드를 VI에서 분리할지 결정하기

다음과 같은 이유로 VI에서 컴파일된 코드를 분리합니다:

  • 소스 컨트롤 단순화VI 계층구조 또는 LabVIEW 프로젝트 안의 모든 파일에서 컴파일된 코드를 분리할 경우, VI 하나가 변경되었을 때 VI 계층구조의 다른 곳에서 저장되지 않은 변경사항이 생기지 않습니다. 그렇기 때문에 변경하려는 VI만 체크아웃하고 이 VI를 호출하는 모든 VI를 체크아웃할 필요가 없습니다.
  • 소스 컨트롤에 있는 VI를 LabVIEW 새 버전으로 업그레이드하기 위해 준비―소스 컨트롤에서 VI 체크아웃하지 않고 소스만 있는 VI를 새 LabVIEW 버전으로 업그레이드할 수 있습니다.
  • VI 로드 시간 향상―LabVIEW는 일반 VI보다 소스만 있는 VI를 더 빨리 로드할 수 있습니다. 이러한 장점을 최대화하려면 VI 계층구조 또는 프로젝트의 모든 파일에서 컴파일된 코드를 분리하십시오..
LabVIEW 런타임 엔진 컴파일된 객체 캐시 소스 배포 빌드 아님

다른 파일 타입에서 소스 컨트롤하기

LabVIEW에서는 소스만 있는 프로젝트 라이브러리, LabVIEW 클래스 및 X컨트롤을 생성할 수 있어, 소스 컨트롤의 멤버 파일 버전에 저장되지 않은 변경사항이 생기는 것을 예방합니다. 소스만 있는 VI와는 달리, LabVIEW는 이러한 파일 타입에서는 컴파일된 코드를 분리하지 않으며, 일부 파일 타입에는 컴파일된 코드가 없는 경우도 있습니다. 대신 이러한 파일 타입에서 소스 파일에서 컴파일된 코드 분리 옵션을 선택하는 경우, LabVIEW는 각 파일의 최신 버전을 객체 캐시에 저장합니다. 라이브러리, 클래스 또는 X컨트롤의 멤버 VI를 변경하는 경우, LabVIEW는 소스 컨트롤에 있는 버전을 저장하도록 요청하는 대신, 객체 캐시의 파일을 업데이트합니다. 그러므로, 소스만 있는 라이브러리, 클래스 및 X컨트롤 역시 소스만 있는 VI의 장점을 가집니다.