LabVIEWがVIをコンパイルするときは、コンパイラは毎回、その後のVIの実行速度を最大化するために、ブロックダイアグラムに一定の最適化を適用しようとします。これらの最適化を実行するには、コンパイラは既存のコードを解析して、最適化が可能で有益な箇所を判別する必要があります。この解析には、VIのコードの複雑度に比例して、メモリと時間が必要になります。このため、VI内のコード量が増加すると、コンパイラが最適化を行うのに必要なメモリと時間も増加します。

過度に複雑なVIの最適化に必要となるメモリが原因で、コンパイラがこれらのVIをコンパイルするときにメモリ不足になったり、大幅な遅くなったりする可能性があります。大多数のVIでこの問題が発生するのを避けるために、コンパイラは、各VIの複雑度を、VIの複雑度がしきい値を超えるときにこれらの多くのメモリを使用する最適化を制限させるコンパイラ最適化しきい値と比較します。しかし、最適化を制限することにより、VIの最大の実行速度は得られなくなります。このため、複雑なVIでは、コンパイラにエディタ応答性とVI実行速度とのトレードオフが発生します。

VIをサブVIに分割することにより、このトレードオフから完全に解放されることができます。このアプローチは、エディタ応答性、最適なVI実行速度、保守性の高く読みやすいコードを生み出します。しかし、合理的にサブVIにさらに分割できないVIに関して、LabVIEWは、以下のような状況を解決するために、しきい値を調整することができます。

  • VIのコンパイル時またはアプリケーションのビルド時にLabVIEWでメモリ不足が発生する。
  • VIのコンパイル時またはアプリケーションのビルド時にLabVIEWが大幅に遅くなる。
  • 編集終了後に、実行速度の最大化を目的として、VIまたは作成済みアプリケーションをコンパイルしたい。