フォーミュラーノード・数式ノード・数値演算ノードのパフォーマンスについて



使用ソフトウェア:
使用ソフトウェア・バージョン: 7.1
使用ソフトウェア・バージョンに特化: N/A
二次のソフトウェア: N/A

問題:
数値演算を繰り返し実行する際、パフォーマンスを優先する必要があります。フォーミュラーノード、数式ノード、数値演算ノードのうち、どのプログラミング アーキテクチャを選ぶべきですか?

解決策:
プログラムの容易さ、メモリの管理、実行スピードのどれを優先するかによって、どのアーキテクチャを選択するか決まります。

プログラムの容易さ
フォーミュラノードと数式ノードでは、テキスト形式の複雑な数式を LabVIEW のグラフィカルプログラミング環境下にコピーし貼りつけて使用出来るので、プログラム開発時間を短縮することが出来ます。

メモリ管理
ツール » プロファイル
カテゴリにあるバッファ割り当てを表示...というツールを用いることで、LabVIEW の実行時にメモリが割り当てられる箇所を確認出来ます。添付 VI をご使用頂くと、フォーミュラノードと数式ノードでは、出力値のみにメモリが割り当てられることがわかります。数値演算ノードを使った場合、出力値だけでなく、計算で使われる一つ一つの定数にもメモリが割り当てられてしまいます。

実行速度
繰り返し演算の場合に最も効率的なノードは数式ノードです。
下記は添付 VI を用いたベンチマークテストの結果です(結果はご利用のコンピュータにより変化します)。

LabVIEW 8.6 で「 2x + x +1 」を 5 万回計算するのに必要な時間( x は 0 から 4,999,999 まで変化):
 
 ・フォーミュラノード: 78 ms
 ・数式ノード: 64 ms
 ・数値演算: 78 ms



関連リンク:

KnowledgeBase 2Q2G3G5A: Is It Better To Index an Array Inside or Outside a Formula Node?



添付:


Formula Node.vi - Formula Node.viExpression Node.vi - Expression Node.vi
Traditional.vi - Traditional.vi



報告日時: 04/20/2003
最終更新日: 12/02/2010
ドキュメントID: 2WJCIHHM