MAXScript に関する質問と回答 > 処理速度を上げる方法 > 頻繁に使用する関数とオブジェクトをキャッシュする |
頻繁に使用する関数およびオブジェクトをユーザ変数に保存し、アクセスを高速化できます。
テスト ケース: |
ep = converttopoly (mesh()) --node ep_bo = ep.baseobject --ediable poly polyop_getvert = polyop.getvert --structure method IEditablePoly = ep_bo.EditablePoly --FPS interface IEditablePoly_GetNumMapChannels = IEditablePoly.GetNumMapChannels --FPS interface |
100,000 回の繰り返しの場合 |
polyop.getvert ep 1 -- 470 msec. polyop_getvert ep 1 -- 79 msec. polyop.getvert ep_bo 1 -- 48 msec. polyop_getvert ep_bo 1 -- 0 msec. ep.EditablePoly.GetNumMapChannels() -- 76532 msec. ep.GetNumMapChannels() -- 72141 msec. ep_bo.EditablePoly.GetNumMapChannels()-- 36688 msec. ep_bo.GetNumMapChannels() -- 34219 msec. IEditablePoly.GetNumMapChannels() -- 6454 msec. IEditablePoly_GetNumMapChannels() -- 0 msec. |
テスト ケース: |
gs = geosphere() gs_bo = gs.baseobject theBend = bend() addmodifier gs theBend |
100,000 回の繰り返しの場合 |
gs.radius -- 718 msec. gs.baseobject.radius -- 828 msec. gs_bo.radius -- 688 msec. gs.modifiers[1].angle -- 718 msec. gs.modifiers[#bend].angle -- 1187 msec. theBend.angle -- 609 msec. |