更多信息
找出Nuke脚本中哪些部分导致播放/渲染速度变慢可能很困难。
为了简化此过程, Nuke提供了两种替代方法来分析脚本中节点的性能,即使用性能计时器和分析节点。
这两种方法都能提供分析数据,用于找出运行速度特别慢的节点,并帮助您优化工作流程。分析结果会显示节点的颜色,从绿色到红色,红色代表运行速度慢的节点。
从下面的示例中可以看出,“Defocus”节点运行速度很慢,而“Merge”节点根本没有执行任何操作。

使用性能计时器
性能计时器模式允许您查看每个节点的分析数据以及节点上的各种指标。
启动Nuke时启用性能计时器
要启用性能计时器运行Nuke ,可以在启动Nuke时使用-P标志。以下是针对各操作系统的具体操作说明:
Windows :
打开命令提示符窗口并运行以下命令:
macOS:
打开终端窗口并运行以下命令:
打开命令提示符窗口并运行以下命令:
"C:\Program Files\Nuke16.0v4\Nuke16.0.exe" -PmacOS:
打开终端窗口并运行以下命令:
/Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/ Nuke 16.0 -P
Linux:
打开终端并运行命令:
注意:这些说明基于Nuke安装在默认位置的情况。如果 Nuke 安装在其他位置,则需要相应地修改命令,才能从您的自定义安装位置运行。
打开终端并运行命令:
/usr/local/ Nuke 16.0v4/ Nuke 16.0 -P注意:这些说明基于Nuke安装在默认位置的情况。如果 Nuke 安装在其他位置,则需要相应地修改命令,才能从您的自定义安装位置运行。
当Nuke启动时启用了性能计时器,您可以在Nuke用户界面中的“性能”菜单中重置、启动和停止计时器,如下所示:
使用 Python 启用性能计时器
在任何Nuke会话中,您还可以通过在脚本编辑器中运行以下命令来启动或停止性能计时器:
nuke .startPerformanceTimers()
nuke .stopPerformanceTimers()
有关这些命令的更多信息,请参阅以下文档:
startPerformanceTimers : nuke : nuke
stopPerformanceTimers : https nuke nuke
使用性能计时器时报告的信息
性能计时器已启用,每个节点将报告以下信息:
• CPU - CPU 执行处理代码所花费的时间,以微秒为单位,是所有 CPU 线程的总和。
例如,在多线程处理中,平均 CPU 时间通常远大于实际运行时间。如果每个线程的平均 CPU 时间(CPU 占用时间除以线程数)远小于实际运行时间,则表明 CPU 线程花费了大量时间未执行代码,可能是在等待锁,这可能预示着性能问题。
注意:在 macOS 和 Windows 系统上,CPU 时间目前不准确。在 macOS 系统上,CPU 时间值始终与实际运行时间相近。
•实际处理时间 - 指墙上时钟所显示的实际处理时间,即您等待处理完成所需的时间。实际处理时间也以微秒为单位。
•操作数 (ops) - 节点中调用的操作符数量。操作符是Nuke的构建模块,用于执行特定任务。节点可以包含一个或多个操作符。
例如,当一个节点需要调整某个对象的大小时,它会使用 Transform 操作,而不是自己实现该操作。
•内存- 节点使用的系统内存总量。
在性能分析模式下启动Nuke后,您可以在Nuke用户界面中的“性能”菜单中重置、启动和停止计时器,如下所示:
配置文件节点
在Nuke 11.1 中,我们添加了 Profile 节点,该节点允许用户计算 Profile 节点所在位置的节点树指标。
在“配置文件”节点的“属性”中,您可以按“打开配置文件面板”来访问用于分析Nuke脚本的控件:

要分析Nuke脚本,请将 Profile 节点连接到要分析的脚本部分,输入选定的帧范围和数据类型,然后单击profile 。
数据收集完成后,“个人资料”面板将根据使用百分比以图表形式显示收集到的数据,如下所示:
注:有关筛选此数据的更多信息,请参阅“筛选个人资料数据”文档。
方法之间的差异
虽然 Profile 节点提供了一些新功能,例如图表和其他基于 GUI 的诊断,但它是基于百分比分析来计算性能,而不是像 Performance 计时器那样基于计时器进行分析。
附加信息
有关这两种方法的更多信息,分别可在性能分析或分析节点文档中找到。
我们很遗憾听到
请告诉我们
概括
本文介绍了两种可用于测试Nuke节点性能的替代方法,以便确定脚本运行缓慢的原因。