ポート接続のコードの最適化

Rational® Rhapsody® には、ポート接続用に生成されるコードを最適化するためのオプションがあります。多くのシナリオでは、これによりアプリケーションのパフォーマンスが改善される可能性があります。
注: このフィーチャーは、C++ コードでのみ使用できます。

ポートがモデルで使用される場合、一連の非振る舞いポートが互いに接続され、呼び出しが一方のエンドから他方のエンドに委譲されるような状態がよく生じます。この結果、実行時パフォーマンスが低下し、アプリケーションのデバッグが困難になります。

この種の問題を回避するために、ポート接続最適化フィーチャーを使用できます。このコード生成オプションを使用すると、生成されるコードにはこの種の連鎖の一方のエンドのポートを接続するための「ショートカット」が含まれます。

ポートの接続最適化フィーチャーを使用するかどうかを決定する際には、トレードオフが存在することを考慮する必要があります。最適化されたコードを使用すると、パフォーマンスは改善しますが、それとともに使用するメモリーが増えます。

この最適化フィーチャーを使用しても、以下のタイプのポートが含まれる接続の場合はコードは最適化されません。

ポート接続最適化の使用は以下のプロパティーで制御されます。

ポート接続最適化コードの生成の制御

ポート接続最適化コードは以下のものから構成されます。

OptimizePortConnectors プロパティーは、このコードの生成を制御し、以下の可能な値を提供します。

ActivateInComponent 値は、実行可能なコンポーネントの場合に適切です。ライブラリーの場合、ライブラリーを使用するコンポーネントがポート・コネクター最適化の使用の有無を知る必要がない状態で使用するのが適切です。

コンポーネント間接続の最適化が必要な状態では、ActivateExternally 値を使用する必要があります。 ポート接続も手動で初期化されるような場合にもこれは適切です。

注: コンポーネント内のポートの間のリンクがない場合、最適化コードはまったく必要ありません。ただし、OptimizePortConnectors プロパティーの値が NoOptimization 以外に設定されていると、必要なインフラストラクチャー・コードが生成され、結果的に使用メモリーが大幅に増えます。そこで、ポート間のリンクがないコンポーネントの場合、このプロパティーを NoOptimization に設定してください。

最適化されるポート接続の制御

最適化を使用するように OptimizePortConnectors プロパティーの値を設定した場合、boolean プロパティー CPP_CG::Port::IncludeInConnectorOptimization の値を設定して、最適化されるポート接続を制御できます。

一連のポートにこのプロパティーの値が False に設定されたポートが含まれる場合、そのポートは最適化に含まれませんが、連鎖内のそれ以外のポート接続に対しては最適化が使用されます。

ポート接続最適化コードのカスタマイズ

ポート接続最適化コード (使用されるマクロの名前や含まれるヘッダー・ファイルなど) をカスタマイズするには、以下のプロパティーを使用できます。


フィードバック