サンプルコードとドキュメント

シフトレジスタとフィードバックノード、どちらが効率的でしょう

コードとドキュメント

添付

すべてをダウンロード

Description

詳細

シフトレジスタフィードバックノードは、どちらも過去の値にアクセスできる、メモリのような機能ではありますが、

どちらが処理が早いか考えたことはありますか?

 

こちらで議論がされています。

Execution speed - feedback node vs. shift register

こちらで添付されているVIを、私の方でも作成してみました。

 

vs.png

 

上のForループではシフトレジスタを、下のForループではフィードバックノードを使用して、値をインクリメントしています。

互いに処理内容は同じなので、実行時間は同じ結果となるはずです。

ですが下記のような結果になりました。

 

result.png

 

シフトレジスタの方が実行速度が速いですね。上記資料によると、

The reason that the Feedback Node is slower is because it is NOT just a Shift Register in disguise.

It is actually allocating more buffers than the ordinary Shift Register and this is what's causing the added execution time.

ということで、フィードバックノードは実際にはシフトレジスタに比べて多くのメモリを割り当てているため、

シフトレジスタに比べて実行効率が劣るようです。

 

 

必要なもの

ソフトウェア

LabVIEW 2012以降

NIコミュニティのサンプルコード交換のサンプルコードは、MIT Licenseによりライセンス供与されています。