如何编写更好的MaxScript
2010-08-23 10:13
197 查看
如何使MaxScript更快?
对场景物体进行更改时,关闭视图刷新
当使用MaxScript更改物体,Max会尝试更新物体在视图中的变化。当需要做很多更改时(例如在一个for循环中),如果希望MaxScript能够执行的更快,可以在循环中关闭视图刷新,执行完所有更改后重新开启。可以使用 "redraw off" 以及 disableSceneRedraw() , enableSceneRedraw() 来设置是否开启视图刷新。
关于相关方法参阅MaxScript Reference中的 :
Redraw
Refreshing the Viewports
必要时关闭撤销
撤销系统消耗较多内存并降低速度。
关于相关方法参阅MaxScript Reference中的 :
undo
修改面板会导致缓慢,必要时切换至创建面板。
关于相关方法参阅MaxScript Reference中的 :
suspendEditing() ,resumeEditing()
MAX Commands
Command Panels
永远不要在你可以获取一行像素的时候去获取单个的像素。
可以使用Mapped Function的时候,不要使用for循环
尽量减少计算次数
fn test4a inVal =
(
local res = 0
for i = 1 to 100 do res += ((inVal * 10) + i)
res
)
fn test4b inVal =
(
local res = 0
local temp = inVal * 10
for i = 1 to 100 do res += (temp + i)
res
)
循环100000 次:
test4a 0 -- 20562 msec.
test4b 0 -- 17797 msec.
缓存经常使用的对象和函数
Dice your data into smaller pieces.
尽可能使用BitArray而不是Array
如果知道Array的大小,应当在使用前进行初始化
递归函数可以更快
MatchPattern 要比FindString更快
若非必要,不要使用 return, break, exit , continue
需要较长的字符串时使用 StringStream
可以使用Name值的时候不要使用string
若非必要,不要使用Execute
如何使MaxScript更好?
尽可能避免全局变量
对场景物体进行更改时,关闭视图刷新
当使用MaxScript更改物体,Max会尝试更新物体在视图中的变化。当需要做很多更改时(例如在一个for循环中),如果希望MaxScript能够执行的更快,可以在循环中关闭视图刷新,执行完所有更改后重新开启。可以使用 "redraw off" 以及 disableSceneRedraw() , enableSceneRedraw() 来设置是否开启视图刷新。
关于相关方法参阅MaxScript Reference中的 :
Redraw
Refreshing the Viewports
必要时关闭撤销
撤销系统消耗较多内存并降低速度。
关于相关方法参阅MaxScript Reference中的 :
undo
修改面板会导致缓慢,必要时切换至创建面板。
关于相关方法参阅MaxScript Reference中的 :
suspendEditing() ,resumeEditing()
MAX Commands
Command Panels
永远不要在你可以获取一行像素的时候去获取单个的像素。
可以使用Mapped Function的时候,不要使用for循环
尽量减少计算次数
fn test4a inVal =
(
local res = 0
for i = 1 to 100 do res += ((inVal * 10) + i)
res
)
fn test4b inVal =
(
local res = 0
local temp = inVal * 10
for i = 1 to 100 do res += (temp + i)
res
)
循环100000 次:
test4a 0 -- 20562 msec.
test4b 0 -- 17797 msec.
缓存经常使用的对象和函数
Dice your data into smaller pieces.
尽可能使用BitArray而不是Array
如果知道Array的大小,应当在使用前进行初始化
递归函数可以更快
MatchPattern 要比FindString更快
若非必要,不要使用 return, break, exit , continue
需要较长的字符串时使用 StringStream
可以使用Name值的时候不要使用string
若非必要,不要使用Execute
如何使MaxScript更好?
尽可能避免全局变量
相关文章推荐
- 如何编写更好的MaxScript
- 如何编写更好的SQL查询:终极指南-第一部分
- 如何编写更好的SQL查询:终极指南-第二部分
- 如何编写更好的SQL查询:终极指南-第三部分
- 如何用auto、decltype和新的函数语法编写更好的代码
- 如何编写更好的SQL查询:终极指南-第二部分
- 单元测试军规:如何编写更好的单元测试
- 如何编写更好的SQL查询:终极指南-第一部分
- 如何编写更好的SQL查询:终极指南-第二部分
- 如何编写更好的SQL查询:终极指南-第二部分
- 如何编写更好的SQL查询:终极指南-第三部分
- 如何在VS2010中更好的编写JavaScript代码
- java程序员如何编写更好的单元测试的7个技巧
- 如何编写更好的jQuery代码
- 如何编写更好的SQL查询:终极指南-第二部分
- 如何编写更好的SQL查询:终极指南-第三部分
- 如何编写出更好的C#代码
- 如何编写更好的SQL查询:终极指南-第一部分
- 终极指南——如何编写更好的SQL查询?
- 单元测试军规:如何编写更好的单元测试