gpt4 book ai didi

python - 玛雅 python 内存刷新?

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:44 25 4
gpt4 key购买 nike

我正在运行一个 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()

添加 flush undo 似乎有点帮助,但我仍然看到内存上升......

最佳答案

您可以尝试使用 cmds.undoInfo 减少 Maya 撤消缓存的大小或完全关闭撤消队列。 .您需要尝试一些策略来查看真正的罪魁祸首是什么——但最终您要更改数千个网格的内容,因此撤消堆栈将非常庞大,因为您实际上需要同时维护旧的和数千个网格的新状态。

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

关于python - 玛雅 python 内存刷新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34019913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com