性能设置¶
Krita 是一个数字绘画程序,它需要处理大量的图像数据,包括笔刷、颜色和图像本身。Krita 组织和存储这些数据的方式对它的性能有重要影响,就好象井井有条的工作室可以提高画师作画效率一样。
Krita 性能设置页面可以更改内存、CPU、缓存等与其性能表现密切相关的选项。此页面的所有选项在更改后必须重启才能生效。
内存¶
计算机有两种保存数据的设备:内存和硬盘。内存速度很快,但空间很小;硬盘速度很慢,但空间很大。CPU 只能从内存中获取数据。内存从硬盘中读取数据需要时间,CPU 从内存读取数据也需要时间,清空内存也需要时间。因此,如何分配、运用计算机有限的内存成为左右 Krita 运行性能的关键所在。
Krita 会在每次启动时按照性能页面的设置向系统申请相应的资源,因此所有在此页的选项在更改后必须重新启动 Krita 才能生效。
- 内存分配上限
指定 Krita 在启动时向系统申请使用的内存空间。滑动条显示了 Krita 将要占用系统内存的百分比,右侧的数值框显示了它占用的实际字节大小。Krita 将不会使用此数值以上的内存。如果你的内存不是特别小,你应该可以同时流畅地使用 Krita 作画、播放音乐和浏览网页。
- 内部保留上限
此选项控制 Krita 内部功能保留的内存池大小。分配到内存池的内存空间将不会被随机数据覆盖造成碎片化,Krita 会在此放置一些程序运行必须的特定数据。在可用内存不足时,内存池可以确保重要的常用数据能被快速访问,减少卡顿现象。
增大内部保留内存可以为程序执行所需的特定数据留出更加充裕的内存空间,但这也会挤占颜色、笔刷等图像数据的可用内存空间。如果此数值设得太高,会造成非特定数据无处可放,这同样会造成性能下降。
如果此数值设得太低,而你的可用内存又比较小,也可能造成画布、参考图像等特定数据碎片化,造成性能下降。
建议值:设为常用图像的一个图层所需的内存大小。例如一个 3000x3000 大小的 8 位 RGBA 图像大概需要 36 MiB。
因为 Krita 必须在启动时才能向系统申请内存分配,在此作出的任何更改必须重新启动 Krita 后才能生效。
自 4.4 版本弃用: 此项设置从 4.4 版起已被废弃。它现在由程序自动控制,无需用户干预。
- 撤销数据上限
Krita 的撤销数据也必须被保存在内存中。超出此项限制的撤销数据将被作为交换文件写入硬盘。如果你的可用内存不足,降低此数值可以将更多内存留给当前操作。如果此数值设得太低,在多次撤销时可能造成拖慢。更改此数值后必须重启 Krita 才能生效。
交换文件¶
- 文件大小上限
指定 Krita 可以使用的交换文件的最大体积。如果 Krita 的数据量同时突破此页面设置的内存和交换文件上限,它的程序将无法继续工作而锁死。
- 交换文件位置
指定 Krita 的交换文件在硬盘中的保存位置。此位置会对性能也有影响。例如固态硬盘比机械硬盘的速度快得多,因此将交换文件放在固态硬盘中性能更好。U 盘也可以视作一种固态硬盘,如果你的 U 盘速度够快,不妨一试。(译者注:绝大多数 U 盘的性能很差,使用的格式可能也不适合交换文件,许多较新的计算机已经使用了性能更好的固态硬盘,请谨慎操作。)
高级标签页¶
多线程¶
现代 CPU 具备多个核心,可以同时进行多个线程的程序操作。自 4.0 版起,Krita 的动画缓存、像素笔刷引擎的笔尖图像等功能已经为多线程进行了优化。
- CPU 可用线程上限
指定 Krita 可以使用的 CPU 线程数量上限。
- 动画处理线程上限
Krita 在渲染动画帧时会复制图像为多份,然后同时在尽可能多的 CPU 线程中并列处理,提高速度。但这也意味着每一个线程都会消耗额外一份内存。如果你的动画很大很复杂,而 CPU 核心数量又特别多,为了不耗尽内存,你可能需要限制动画处理线程的数目。
- 帧渲染超时
为了防止 Krita 在处理单个帧时卡死,我们要限制程序在处理每个帧时耗费的时间,如果发生超时,Krita 将直接跳过它去处理下一帧。如果在导出动画时经常发生超时错误而失败,你可以提高此项数值。提示:导出错误也有可能是因为动画文件过于复杂造成的。
其他¶
- 笔刷帧速上限
降低笔刷绘制时的画布视图帧率可以为 Krita 留出处理其他操作的资源,但有些人对于笔刷帧率很敏感,因此我们让用户可以自行配置此项。
- 显示并记录 OpenGL 帧率
勾选后将在画布视图中显示视图帧率。
- 显示并记录笔刷渲染速度
勾选后将在画布视图中显示上一笔的笔刷绘制速度。
- 禁用矢量优化
现代 CPU 可以为某些运算进行矢量优化,相关的指令集包括 SIMD 和 AVX 等。但在 Windows 环境使用旧款 AMD CPU 时,矢量优化会造成一些问题,这时你应该禁用矢量优化。(译者注:关于哪些 CPU 受影响一直没有准确的说法。从用户的反馈来看,从 AMD Ryzen/锐龙 1 代起,AMD CPU 不再有矢量优化缺陷。本人亲自测试过锐龙 2 代移动版 CPU,确认无此问题。)
- 显示状态栏进度条
勾选此项后,在进行需要长时间处理的操作时,Krita 的任务栏右下方将显示一条处理进度条。这在大规模调整图层顺序、巨型笔刷、复杂滤镜等场合可以减少 Krita 已经失去响应的误会。在处理过程中点击进度条旁边的红色停止按钮可以终止操作。此选项默认勾选,取消勾选后可以略微提高处理速度。
- 记录程序性能日志
勾选后,Krita 将把程序性能日志写入到
当前图像文件所在目录
中的Log
文件夹。如果图像文件未命名,在 Linux 环境下日志将被写入
$HOME
文件夹,在 Windows 环境下则会写入%TEMP%
文件夹。
动画缓存标签页¶
在 4.1 版本加入.
动画缓存是动画帧被预渲染后在内存中占用的空间。
假设我们要播放一个 25 FPS 的动画,这意味着计算机必须要每秒钟预渲染 25 张图像。视频播放器可以做大量的优化以提高效率,但 Krita 必须允许用户编辑图像,因此无法做同等的优化,因此速度更慢,资源消耗也大得多。
动画师一方面要随时对画面进行改动,另一方面要即时预览这些改动的效果,因此 Krita 必须一直在后台生成动画的预渲染缓存,使得预览能够流畅地播放。此标签页可以进行相关的性能配置,请根据动画作品的特性和计算机配置的具体情况进行调整。
缓存位置¶
- 内存空间
如果选中此项,动画帧缓存将被存储到内存中,且不进行任何限制。这也是 4.1 版之前的默认工作方式。此选项对内存的要求较高,如果你制作的动画为 8K 25 FPS,同时还要全屏工作,那么你的计算机最好具备 64 GiB 的内存,否则切勿选择此项,同时还要考虑降低动画的分辨率。
警告
请确保你的计算机具备足够的空闲内存。计算机的物理运行内存必须大于 常规 标签页中指定的内存上限,否则你很可能会遇到系统锁死。
每 1 秒的全高清 (1080P) 25 FPS 动画需要 200 MiB 内存。
每 1 秒的超高清 (4K) 25 FPS 动画需要 800 MiB 内存。
- 硬盘空间
如果选中此项,动画帧缓存将被作为交换文件存储到硬盘中。缓存在写入硬盘之前会先进行压缩。硬盘缓存的后端程序依然会使用少量运行内存。
硬盘的数据传输速度比内存要慢得多。要流畅播放 25 FPS 的动画,建议将 缓存帧大小上限 设为 2500px。
缓存生成选项¶
- 缓存帧大小上限
如果图像超出了此大小限制,则将它缩小为此大小之后写入缓存。硬盘的数据传输速度较慢,如果按照图像的完整分辨率写入缓存,很可能会在播放动画时发生卡顿。在使用硬盘空间进行缓存时请确保勾选了此选项,并将数值设置为 2500px 以下。尽管这会牺牲动画播放的画质,但有助于保持播放的流畅。
- 仅渲染视图及周围
一般来说,我们只需要观察显示在视图中的那部分画面。勾选此项后,Krita 将只渲染视图中的画面,并在此基础上向外渲染一定比例的额外区域 (在百分比滑动条中设置)。
- 后台缓存预渲染
允许 Krita 在电脑闲置时在后台预渲染动画,这将减少缓存的等待时间,有利于动画的流畅播放。如果你想节约用电或减少电脑发热,可以关闭此选项。