インタフェースとメソッドの検索パフォーマンスの向上

インタフェースおよびインタフェース内でメソッドを検索すると、速度が落ちる可能性があります。たとえば、特に複数の頂点、面、法線、オブジェクトなどに影響を及ぼすためにループ内で同じメソッドを複数回呼び出す場合に、パフォーマンスが著しく低下します。

インタフェース内でメソッドへのアクセスを高速化するために、MAXScript によってインタフェースとメソッドを 1 回検索させて、その後はループ内で直接そのメソッドにアクセスすることができます。

以下は、通常の方法です。

for i = 1 to 100 do
myObject.edit_normals.setNormal i myNormals[i]

以下が、代替の方法です。

EN_setNormal = myObject.edit_normals.setNormal -- the method
for i = 1 to 100 do
EN_setNormal i myNormals[i]

このようにすると、要求されたインタフェースとメソッドは 1 回だけ検索され、その後は検索せずにループ内で複数回直接アクセスされます。

上記のように高速ではありませんが、次の方法もあります。

EN_mod_i = myObject.edit_normals.EditNormalsMod -- the interface
for i = 1 to 100 do
EN_mod_i.setNormal i myNormals[i]

この場合は、インタフェースは 1 回だけ検索されますが、メソッドは複数回検索されます。同じインタフェースの多くのメソッドにアクセスする場合は、ループ内でインタフェースとメソッドの両方を検索するよりも、この方法の方が高速です。

関連事項