术语表/你会看到的进程

MTLCompilerService

又称:Metal着色器编译器

简要回答

MTLCompilerService是替使用Metal(Apple的图形框架)的App为GPU准备图形代码的macOS进程。每个用Metal绘制的App都有自己的一份,所以活动监视器中常常同时列出好几个。

游戏、浏览器、视频编辑软件和许多普通App都通过Metal绘制。着色器是决定画面外观的小程序,GPU运行App的着色器之前,必须先针对你Mac中的芯片进行编译。macOS把这项工作放在MTLCompilerService中、与App分开进行,这样有问题的着色器就不会让App本身崩溃。

结果会存入App的缓存,所以这项工作只做一次,之后重复使用。App退出后,它的那一份MTLCompilerService也随之消失。

MTLCompilerService为什么占用这么多CPU

有App正在编译着色器,而它存下的副本不见了或已过时。App首次运行、App或macOS更新之后,以及游戏载入新关卡时,都会出现这种情况。持续几秒到几分钟的短暂高占用是正常的,这也是为什么游戏在你第一次进入某个区域时会卡顿,之后就不再卡了。

如果它忙的时间长得多,就是某个App在一遍又一遍地编译同样的着色器。常见的是打开了图形繁重的网页的浏览器,以及刚更新过的App。

怎么处理

更新或首次启动后,给它几分钟。如果还在继续,就找出它属于哪个App:逐个退出绘制图形的App,先从浏览器和游戏开始,看哪一个退出时把忙碌的MTLCompilerService一起带走。

然后更新那个App,如果是浏览器,就关掉引起问题的标签页。退出MTLCompilerService本身是安全的,但很少能长时间见效,因为App会再要一个新的,编译又从头开始。

常见问题

Mac上的MTLCompilerService是什么?

它是为使用Metal的App编译图形着色器的macOS进程。它是macOS的一部分,每个需要它的App都有自己的一份。

为什么有这么多MTLCompilerService进程?

因为每个用Metal绘制的App都有一个,而有些App会启动好几个,浏览器尤其如此。闲置的那些几乎不占CPU,内存也占得很少。

MTLCompilerService是病毒吗?

不是。它是macOS的一部分,位于“系统”文件夹中的Metal框架内。它CPU占用高,说明有App正在准备图形,而不是Mac出了问题。

相关条目

想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。