maya python内存刷新?

maya python内存刷新?,python,maya,Python,Maya,我正在运行maya python脚本,该脚本在场景中运行,如果网格对象高于某个范围,则会减少其多边形数 这在小场景中运行良好,但当我在数千个网格对象上运行它时,我的机器的内存使用会不断增加,直到maya冻结在物理内存使用量的80%左右 我的问题是,我是否可以在python循环中添加某种内存刷新,而不是我已有的,以“重置”内存使用?或者这是不可能的,因为线程仍在运行 我正在运行这个: selectedObjects = ls (sl=True, fl=True) for obj in select

我正在运行maya python脚本,该脚本在场景中运行,如果网格对象高于某个范围,则会减少其多边形数

这在小场景中运行良好,但当我在数千个网格对象上运行它时,我的机器的内存使用会不断增加,直到maya冻结在物理内存使用量的80%左右

我的问题是,我是否可以在python循环中添加某种内存刷新,而不是我已有的,以“重置”内存使用?或者这是不可能的,因为线程仍在运行

我正在运行这个:

selectedObjects = ls (sl=True, fl=True)
for obj in selectedObjects:
    reduceMesh(obj) # my function
    cmds.flushUndo()
    cmds.clearCache( all=True )
    cmds.DeleteHistory()

添加刷新撤消似乎有点帮助,但我仍然看到内存增加…

您可以尝试减少Maya撤消缓存的大小,或者使用关闭撤消队列。您需要尝试几种策略来了解真正的罪魁祸首是什么——但最终您将更改数千个网格的内容,因此撤消堆栈将是巨大的,因为您需要有效地维护数千个网格的新旧状态


如果这变得不可能,您可以拖动大场景,将单个对象保存到不同的文件中,并将它们引用回原始场景。然后您可以单独处理所有这些文件。这将有一些性能开销,但可能会让您完成这项工作。

另外,如果您使用2015 Ext 1或2016,则使用探查器查看谁制造了梅西。我不想看到谁制造了混乱,我只想冲洗它。到目前为止,我还没有找到一个方法去做。。。2017年在Maya进行了测试。