エディタの応答性かVIの実行速度かを選択する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ
LabVIEW 2020ヘルプ

大きなVIの編集が大幅な遅延なく行えるように、VIの複雑度が一定のしきい値を超えるとLabVIEWはコンパイラ最適化を自動的に制限します。最適化を制限することにより、これらの大きなコンパイル済みVIは最高速度で実行されない場合があります。LabVIEWで実行速度よりもエディタ応答性を優先する場合を制御するために、LabVIEWが最適化を制限しはじめる複雑度のしきい値を調整することができます。

ヒント ヒント  大きなVIをサブVIに分割することにより、トレードオフを完全に回避することができます。このアプローチは、VIの複雑さを下げることにより、エディタの応答性、実行速度、コードの読みやすさを最適化できます。

大きなVIをサブVIに分割することができない場合で以下のような場合は、複雑度のしきい値の調整を検討してください。

  • 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) 実行ボタンをクリックしながら、<Ctr>キーを押します。
    (macOS) 実行ボタンをクリックしながら、<Command>を押します。
    (Linux) 実行ボタンをクリックしながら、<Alt>キーを押します。
  6. VIの開発またはデプロイメントが完了した後に複雑度のしきい値を5に変更します。
    複雑度のしきい値はすべてVIに適用されるので、一般的には、しきい値のデフォルト値である5を使用することをお勧めします。この値に設定すると、大多数のVIに対してエディタの応答性と実行速度が適切に調節されます。

ヒントとトラブルシューティング情報

  • エディタの応答性とVIの実行速度のトレードオフを回避するには、コードの一部をサブVIに移動することにより、大きなVIの複雑度を下げます。このアプローチは、エディタの応答性、実行速度、コードの読みやすさを同時に最適化します。
  • プロジェクト内で、ビルド時間を長くさせたり、メモリエラーを起こしているVIを特定できない場合は、問題が改善するまでコンパイラ最適化スライダを1目盛ずつ下げます。
  • 複雑度のしきい値はすべてのVIに適用されます。そのため、しきい値をデフォルト値以外の値にすると、他のVIのエディタ応答性や実行速度で予期しない変化が生じる場合があります。
  • PowerPCまたはARMアーキテクチャ上で稼動するターゲット(それぞれVxWorksとNI Linux Real-Timeターゲット)用にアプリケーションをビルドするときは、コンパイラは、複雑度のしきい値を無視します。これらのターゲットでは、特定のコンパイラ最適化を使用する必要があります。このため、複雑度のしきい値をVIの複雑度より下げても、LabVIEWはアプリケーションをさほど速くビルドできない可能性があり、また、しきい値をVIの複雑度より上げても、実行速度が上がらない可能性があります。
  • コンパイル:コードの複雑度プロパティ、コンパイル:前回コンパイル時の最適化レベルプロパティ、アプリケーション:コンパイラしきい値プロパティを使用することにより、VIの複雑度、および複雑度のしきい値とプログラム的に対話することができます。


この記事は役に立ちましたか。

役に立たなかった