頻繁に使用する関数とオブジェクトをキャッシュする
頻繁に使用する関数およびオブジェクトをユーザ変数に保存し、アクセスを高速化できます。
テスト ケース:
|
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.
|