VI의 복잡도가 임계점을 넘어서는 경우, LabVIEW는 자동으로 컴파일러 최적화를 제한하여 상당한 지연 없이 큰 규모의 VI를 편집할 수 있도록 합니다. 최적화를 제한하면, 크기가 큰 컴파일된 VI가 최대 실행 속도로 실행되지 못하는 단점이 발생할 수 있습니다. LabVIEW가 최적화를 제한하는 지점인 복잡도 임계점을 조절하여, LabVIEW가 언제 편집기 응답을 실행 속도보다 우선할지 사용자가 결정할 수 있습니다.

큰 VI를 여러 SubVI로 나누면 이러한 단점이 발생하는 것을 방지할 수 있습니다. 이렇게하면 VI의 복잡도가 감소되어 편집기 응답, 실행 속도 및 코드 가독성이 최적화됩니다.

큰 VI를 여러 SubVI로 나눌 수 없는 경우, 다음과 같은 상황에서 복잡도 임계점의 조절을 고려해 볼 수 있습니다:

  • LabVIEW가 VI를 컴파일할 때 VI에 상당한 지연이 발생합니다.
  • VI를 컴파일 할 때 LabVIEW의 메모리가 소진됩니다.
  • 크거나 복잡한 VI의 개발을 완료한 후, 실행 속도를 최적화하려고 합니다.

실행 단계

다음 단계를 완료하여 편집기 응답과 VI 실행 속도 중 하나를 선택합니다.

  1. 편집기 응답 또는 실행 속도를 변경하려는 VI를 찾습니다. 복잡도 임계점은 모든 VI에 적용되는 환경 셋팅이지만 개별 VI의 복잡도를 사용하여 현재의 복잡도가 이 VI의 목적을 달성하는지 결정할 수 있습니다.
  2. VI의 복잡도를 알아냅니다. VI 프로퍼티 대화 상자의 메모리 사용 페이지에서 컴파일된 코드 복잡도 값을 참조하십시오.
  3. VI의 복잡도를 컴파일러 최적화에서의 임계점과 비교합니다. 옵션 대화 상자의 환경 페이지에서 컴파일러 최적화 슬라이더를 참조하십시오. 컴파일러는 VI 복잡도가 슬라이더에 나타난 값 위로 올라가면 컴파일러가 최적화를 제한하여 편집기 응답을 향상시킵니다. VI의 복잡도가 슬라이더의 값보다 낮은 경우, 컴파일러는 VI에 최적화를 적용합니다.
  4. 목적에 맞도록 복잡도 임계점을 조절합니다.
    • 편집기 응답에 우선순위를 두거나 메모리 부족 에러를 방지하려면, 슬라이더를 VI 복잡도 아래로 낮춥니다.
    • 실행 속도에 우선순위를 두려면 슬라이더를 VI 복잡도 위로 올립니다.
  5. VI를 다시 컴파일하여 변경 사항을 적용합니다. (Windows) 실행 버튼을 클릭하는 동안 <Ctrl>을 누릅니다. (macOS) 실행 버튼을 클릭하는 동안 <Command>를 누릅니다. (Linux) 실행 버튼을 클릭하는 동안 <Alt>를 누릅니다.
  6. 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 복잡도 및 복잡도 임계점과 프로그램적으로 상호작용할 수 있습니다.