편집기 응답과 VI 실행 속도 중 선택하기
- 업데이트 날짜:2025-08-27
- 2분 (읽기 시간)
VI의 복잡도가 임계점을 넘어서는 경우, LabVIEW는 자동으로 컴파일러 최적화를 제한하여 상당한 지연 없이 큰 규모의 VI를 편집할 수 있도록 합니다. 최적화를 제한하면, 크기가 큰 컴파일된 VI가 최대 실행 속도로 실행되지 못하는 단점이 발생할 수 있습니다. LabVIEW가 최적화를 제한하는 지점인 복잡도 임계점을 조절하여, LabVIEW가 언제 편집기 응답을 실행 속도보다 우선할지 사용자가 결정할 수 있습니다.
팁 큰 VI를 여러 SubVI로 나누면 이러한 단점이 발생하는 것을 방지할 수 있습니다. 이렇게하면 VI의 복잡도가 감소되어 편집기 응답, 실행 속도 및 코드 가독성이 최적화됩니다.
큰 VI를 여러 SubVI로 나눌 수 없는 경우, 다음과 같은 상황에서 복잡도 임계점의 조절을 고려해 볼 수 있습니다:
- LabVIEW가 VI를 컴파일할 때 VI에 상당한 지연이 발생합니다.
- VI를 컴파일 할 때 LabVIEW의 메모리가 소진됩니다.
- 크거나 복잡한 VI의 개발을 완료한 후, 실행 속도를 최적화하려고 합니다.
실행 단계
다음 단계를 완료하여 편집기 응답과 VI 실행 속도 중 하나를 선택합니다.
- 편집기 응답 또는 실행 속도를 변경하려는 VI를 찾습니다. 복잡도 임계점은 모든 VI에 적용되는 환경 셋팅이지만 개별 VI의 복잡도를 사용하여 현재의 복잡도가 이 VI의 목적을 달성하는지 결정할 수 있습니다.
- VI의 복잡도를 알아냅니다. VI 프로퍼티 대화 상자의 메모리 사용 페이지에서 컴파일된 코드 복잡도 값을 참조하십시오.
- VI의 복잡도를 컴파일러 최적화에서의 임계점과 비교합니다. 옵션 대화 상자의 환경 페이지에서 컴파일러 최적화 슬라이더를 참조하십시오. 컴파일러는 VI 복잡도가 슬라이더에 나타난 값 위로 올라가면 컴파일러가 최적화를 제한하여 편집기 응답을 향상시킵니다. VI의 복잡도가 슬라이더의 값보다 낮은 경우, 컴파일러는 VI에 최적화를 적용합니다.
- 목적에 맞도록 복잡도 임계점을 조절합니다.
- 편집기 응답에 우선순위를 두거나 메모리 부족 에러를 방지하려면, 슬라이더를 VI 복잡도 아래로 낮춥니다.
- 실행 속도에 우선순위를 두려면 슬라이더를 VI 복잡도 위로 올립니다.
- VI를 다시 컴파일하여 변경 사항을 적용합니다. (Windows) 실행 버튼을 클릭하는 동안 <Ctrl>을 누릅니다. (macOS) 실행 버튼을 클릭하는 동안 <Command>를 누릅니다. (Linux) 실행 버튼을 클릭하는 동안 <Alt>를 누릅니다.
- VI의 개발 또는 배포를 완료한 후, 복잡도 임계점을 5로 변경합니다. 복잡도 임계점은 모든 VI에 적용되기 때문에 National Instruments는 임계점의 기본값인 5를 사용할 것을 권장합니다. 이 값을 사용하면 LabVIEW는 대부분의 VI에서 편집기 응답과 실행 속도 사이에서 올바르게 우선순위를 선택합니다.
팁 및 문제 해결 정보
- 편집기 응답과 실행 속도 중 하나를 선택하여 다른 하나를 희생하게되는 결점을 방지하려면, 코드의 섹션을 SubVI로 옮겨 큰 VI의 복잡도를 감소합니다. 이렇게하면 편집기 응답, 실행 속도와 코드 가독성이 동시에 최적화됩니다.
- 프로젝트에서 어떤 VI가 긴 빌드 시간 또는 메모리 부족 에러를 발생하는지 알 수 없는 경우, 문제가 향상될 때까지 컴파일러 최적화 슬라이더를 한단계씩 낮춥니다.
- 복잡도 임계점은 모든 VI에 적용됩니다. 그러므로, 임계점을 기본값이 아닌 값으로 설정한 채로 두는 경우, 다른 VI의 편집기 응답 또는 실행 속도에 예상하지 못한 변경 사항이 생길 수 있습니다.
- PowerPC 또는 ARM 구조를 실행하는 타겟에 대해 어플리케이션을 만들 때, 컴파일러는 복잡도 임계점을 무시합니다. (각각 VxWorks 및 NI Linux Real-Time targets). 이러한 타겟에서는 VI가 특정 컴파일러 최적화를 사용해야 합니다. 그러므로 VI 복잡도 아래로 복잡도 임계점을 낮추면 LabVIEW가 어플리케이션을 더 빨리 만들 수 없고, 임계점을 VI 복잡도 위로 올리게되면 실행 속도가 향상되지 못할 수도 있습니다.
- 컴파일:코드 복잡도 프로퍼티, 컴파일:최종 컴파일 범위 프로퍼티, 어플리케이션:컴파일러 임계점 프로퍼티를 사용하여 VI 복잡도 및 복잡도 임계점과 프로그램적으로 상호작용할 수 있습니다.