デフォルトでは、VIには、ユーザが編集するグラフィカルソースコードと、VIの実行に使用されるこのコードのコンパイルバージョンが含まれています。ユーザがVIのソースコードを編集すると、VIは自動的に再コンパイルされ、その編集がコンパイルバージョンにも反映されます。変更されたVIを呼び出すVIもすべて自動的に再コンパイルされるため、呼び出しVIに未保存の変更が生じます。呼び出しVIがソース管理に保存されている場合は、これらの保留中の未保存の変更があるため、サブVIを更新したときにはそのVIをチェックアウトすることが必要になります。

この問題を回避するために、コンパイルコードをVIから分離することができます。コンパイルコードをVIから分離しても、サブVIを変更したときにはそのVIはコンパイルされます。しかし、コードの再コンパイルされたバージョンは、ソース管理のVIではなく、コンパイルオブジェクトキャッシュに保管されます。ソース管理内のVIは変更されないので、サブVIを変更しても、そのVIをソース管理からチェックアウトする必要はありません。

コンパイルコードをVIから分離するかどうかを決める

コンパイルコードをVIから分離する理由としては、以下が考えられます。

  • ソース管理を簡素化する―コンパイルコードをVI階層またはLabVIEWプロジェクト内のすべてのファイルから分離することにより、1つのVIを変更しても同じVI階層内の他のVIに未保存の変更が発生しなくなります。こうすることで、変更されたVIを呼び出すすべてのVIをチェックアウトするのではなく、変更したいVIのみをチェックアウトすることができます。
  • ソース管理内のVIを新しいバージョンのLabVIEWにアップグレードする準備をする―ソースのみのVIは、VIをソース管理からチェックアウトせずに、新しいバージョンのLabVIEWにアップグレードすることができます。
  • VIのロード時間を短縮する―ソースのみのVIは、通常のVIよりも速くロードすることができます。この効果を最大化するには、コンパイルコードをVI階層またはプロジェクト内のすべてのファイルから分離してください。
not LabVIEWランタイムエンジン コンパイル済みオブジェクトキャッシュ ソース配布を作成する

その他のファイルタイプのソース管理を促進する

LabVIEWでは、メンバーファイルによって、ソース管理に保管されているバージョンに未保存の変更が生じないように、ソースのみのプロジェクトライブラリ、LabVIEWクラス、XControlを作成することもできます。ソースのみのVIの場合とは異なり、LabVIEWは実際にはコンパイルコードをこれらのファイルタイプから分離することはしません。一部のファイルタイプにはコンパイルコードすら含まれていません。その代わり、これらのファイルタイプでコンパイルコードをソースファイルから分離するオプションを選択すると、各ファイルの最新バージョンがオブジェクトキャッシュに保管されます。ライブラリ、クラス、またはXControlのメンバーVIを変更すると、LabVIEWはユーザにソース管理にあるバージョンを保存するように頼むのではなく、オブジェクトキャッシュにあるファイルのバージョンを更新します。このため、ソースのみのライブラリ、クラス、XControlで、ソースのみのVIと同じ利点が得られます。