optimize 属性
[optimize] ACF 属性は、データをマーシャリングするためのグラデーションのレベルを微調整するために使用されます。
optimize ("optimization-options")
-
optimization-options
-
データをマーシャリングする方法を指定します。 混合モードのマーシャリングには "s" を使用し、解釈されたマーシャリングには "i" を使用します。
このバージョンの RPC では、データをマーシャリングするための 2 つの方法 (混合モード ("s") と解釈 ("i") が提供されます。 これらのメソッドは、 /Os および /Oi コマンド ライン スイッチに対応します。 解釈されたメソッドは、データを完全にオフラインでマーシャリングします。 これによりスタブのサイズが大幅に小さくなりますが、パフォーマンスが影響を受ける可能性があります。
パフォーマンスに問題がある場合は、混合モードの方法が最適な方法です。 混合モードを使用すると、MIDL コンパイラは、どのデータをインラインでマーシャリングし、オフライン ダイナミック リンク ライブラリの呼び出しによってマーシャリングするかを決定できます。 多くのプロシージャで同じデータ型が使用されている場合は、1 つのプロシージャを繰り返し呼び出してデータをマーシャリングできます。 このように、インライン マーシャリングに最も適したデータはインラインで処理されますが、他のデータはオフラインでより効率的にマーシャリングできます。
[optimize] 属性は、インターフェイス属性または操作属性として使用できることに注意してください。 インターフェイス属性として使用する場合は、インターフェイス全体の既定値が設定され、コマンド ライン スイッチがオーバーライドされます。 ただし、操作属性として使用されている場合は、その操作にのみ影響し、コマンド ライン スイッチとインターフェイスの既定値がオーバーライドされます。
optimize ("s") HRESULT FasterProcedure(...);
optimize ("i") HRESULT SmallerProcedure(...);