機能ノードのポリシーは、ノードの実行スケジュールに関連するオーバーヘッドを軽減するのに役立ちます。このポリシーは、慎重に評価した後に、ノード単位でのみ適用されるべきです。
#define TBB_PREVIEW_FLOW_GRAPH_LIGHTWEIGHT 1 #include "tbb/flow_graph.h"
lightweight ポリシーは、ノードのボディーに含まれる作業量が小さく、可能であれば、タスク・スケジュールのオーバーヘッドなしで実行されるべきであることを示します。source_node を除く、すべてのフローグラフの機能ノードは、Policy テンプレート引数に設定可能な値として lightweight ポリシーをサポートしています。lightweight ポリシーを使用するには、ノードの Policy テンプレート引数に queueing_lightweight、rejecting_lightweight、または lightweight を指定します。Policy に lightweight を指定すると、ノードは queueing バッファーポリシーになります。
シリアル実行セマンティクスの function_node に lightweight ポリシーを使用すると、ノードのサクセサーにメッセージを渡す順序が変わります。メッセージを渡す順序が重要な場合は、lightweight ポリシーのノードの後に sequencer_node を使用すべきです。
lightweight ポリシーのノードに複数のサクセサーがあると、グラフで利用可能な並列性が大幅に低下します。