article_image

当我们说电脑卡顿时,有两种意思:一种是在执行特定任务时卡,例如打开 Chrome 卡、开启 Photoshop 卡或者渲染视频卡;另一种是持续卡顿,在 Finder 里随便点开一个文件夹都要等进度条转上几百个轮回,同事给你传一个文件更是会导致电脑宕机。前者就像过敏,一个人如果不去特殊环境或解除特殊物质,很可能一辈子都不会遭遇麻烦,甚至意识不到自己体质如何;后者则如同地方性疾病,不能回避,只能正面应战。

macOS 中最著名的地方顽疾,当属 Spotlight 索引,几乎任何能够让 Finder 都磕磕绊绊无法运行的问题都可归咎于此。而遭遇问题的人容易不见舆薪, 往往先试着关闭甚至卸载 Chrome、Microsoft Word 或微信这些耗能大户,就好像一个湿疹爆发而不止病因的人,丢掉所有的可疑家具并搞了大扫除却无济于事,其实真正的原因是结构性的:整个环境都出了大问题。

Spotlight 索引本身还挺有用,这一机制会持续在后台为文件创建索引,方便搜索。然而,Spotlight 索引从来没有稳定过1,最夸张的一次,我分明自己都看见目标文件了,它却搜不出来。以我的经验以及在同事电脑上的测试,大概有几万个文件后,Spotlight 就完全不可靠了。Spotlight 本身不靠谱,大不了不用——我目前全靠 LaunchBar 和命令行搜索文件——但次生问题则严重得多,将直接导致电脑持续卡顿。Spotlight Index(“Spotlight 索引的英文”)搜索结果的前三条,一般是一条教你重建的(还是 Apple 官方的)、一条骂人的以及一条询问如何关闭的,其恶名可见一斑。

Alt text
Spotlight 索引的搜索结果几乎全是负面的(截图省略了推荐内容)

打个比方,读小学时你可能只有三五个朋友要联系——请原谅我来自上小学不能带手机的古老时代——几乎不存在联系人管理的问题;假设长大后进了咨询公司,客户资料就足足摆满了几面墙,公司甚至可能专门养了一个部门的人来管理这些材料。

Spotlight 就是好比那个不受欢迎的后勤部门,从来没把事儿做好过,还经常闯祸,却又不能解雇。

此病不可根治,只能通过种种方法缓解症状。

从 Recents 下手

如果只能记得一种方法,就是这个。

Recents(最近使用)是 Finder 的特殊机制,可以列出系统或某个软件最近使用过的文件。Apple 非常鼓励用户使用 Recents,乃至将其设为默认的 Finder 窗口。不难理解,一个人可能疏于整理文件,但循着 Recents 里的记录,理论上可以找到最近使用的任何文件——只要文件未被移除,或者 Spotlight 还没崩溃。

然而,Recents 给电脑带来的负担会线性上升,盖其可以一直追溯到你使用当前电脑的第一天,如果其间用系统迁移助手搬过数据,则继续向前追溯,压力更大;加之不少自动化工具和数据库软件会自动处理文件,这又给 Recents 雪上加霜。我在虽然个人付费栏目中曾推荐过 Recents,但当时还在读书,能折腾,换电脑很勤快,没有机会考验 Recents 的极限;如今一台机器连续用上五年,就连打开 Recents 都要去喝杯茶等待了。

如果你的电脑卡到连打开文件夹都要等很久,一定要试试关闭 Recents。方法:在 Finder——趁某次好不容易顺利打开的那短暂间隙——中,按下快捷键 ⌘Command-, 打开设置页面,前往 Sidebar(侧边栏)标签页,取消勾选“Recents”。随后重启电脑,和可能有肉眼可见的提速。

Alt text
关闭侧边栏中的 Recents

我用此方法救活了周围朋友的四台电脑(数量正在不定期增加中)。

当然,关闭侧边栏中的 Recents,并不意味着彻底关掉 Recents 机制,macOS 还是会记录各个软件最近使用过的文件。这一途径更值得推荐,它既保留了访问最近常用文件的渠道,也不至于过分消耗资源。不过,单个软件的 Recents 也应当限制一下数量,具体情况还是依据各人电脑状况,量力而行。软件 Recents 数量可在系统设置“Desktop & Dock”项下的“Menu bar”一栏中调整。

Alt text
合理限制软件 Recents 数量
注:如果你在使用 LaunchBar,则建议将软件的 Recents 数量限制在 10 到 15 个,如果数量过多,则会干扰过滤文件。另,本文截图来自 macOS 13,如您使用 macOS 14,则 Recents 设置在 Control Center 设置下。

尽可能少用标签

除了 Recents,另一方面的压力来自标签。貌似轻巧的标签,其实会给系统施加极大压力。标签虽然是文件属性之一,但并非天然属性,而是 macOS 引入的特殊机制,隔壁的 Windows 则至今不支持这一机制。由于这几年 All in One 信息管理工具的持续营销,不少人认为标签已足以替代文件夹,从而大量创建标签;我自己陆陆续续用过的标签也有上千个,今年国庆前整理时发现还剩八百多个。标签看似是一笔宝贵的财产,记录了阅读和工作的足迹,其实多为绊脚石,因为绝大多数标签,根本不看也不用,主要的功能,只剩拖垮电脑

少用标签就能缓解电脑卡顿,此事不难理解,关键是许多人可能无法接受少用乃至不用标签。其实,我在拙作《信息管理,文件为本位的方案》中,就主张标签是临时的。我把标签分为描述性标签指示性标签,前者用于描述文件信息,后者用于指示任务进度,而一旦你足够熟悉一个领域、已经完成一系列工作,那么两类标签都可以移除。后一类紧随任务的指示性标签,应当不用解释;前一类描述性标签,仔细一想,其实事后往往也用不上,例如,我在读书时只接触过关于 惩罚性赔偿 的三五个案例,如今当了律师,档案库里有上百个相关案例,再用 惩罚性赔偿 这枚标签,颗粒度就太粗糙,搜了和没搜一样,无助于搜索文件了。

我现在仍然同时使用描述性标签和指示性标签,但仅用于我不熟悉的领域,比如做菜,因为我不专业,就只好先打一堆标签,从菜系、原料、手法等维度粗粗勾勒手头的食谱,但假以时日,这样粗颗粒的标签肯定也会谢幕。

方法:在 Finder 设置的标签一栏下,批量选中并删除无用的标签。请勿在 Finder 中直接删除,因为无法批量操作,太浪费时间。另外,如果你有 DEVONthink,还需要手动清除一下其中的标签;如果在 LaunchBar 和 Alfred 等工具中关联过标签,也请重启相关工具以更新数据。

Alt text
我现在正在使用的标签仅几十个(截图来自 LaunchBar,方便呈现标签全貌)

当然,“标签必死”这样激烈的断言,我没什么兴趣大力发声,毕竟很难把自己十几年的经验一股脑儿塞给别人——写本文时没打算写,可惜我还是忍不住写了。读书时,老师总是苦口婆心劝导要“先把书读厚,再把书读薄”,结果不少人还反唇相讥:那不是到头来白忙活吗?对于这类看不见过程的人,有一首打油诗的下半首很适合送上,但不太文雅,故我只放上半首:

天上下雪不下雨,雪到地上变成雨,未如开始就下雨。

不用的文件尽快打包压缩或转移

缓解 Spotlight 的压力,最好是多管齐下,前两节旨在减少索引的生成,本节则转向及时排毒:将不用的文件打包压缩,或者转移到外置存储,既保留原始文件,也避免 Spotlight 继续为难自己(Spotlight 不会索引压缩文件中的内容)。

这套归档习惯是 @沨沄极客 前几年告诉我的,我很庆幸读书时就有人指点,因为我读的是文科,缺乏和海量数据交手的经验,以前从未意识到放着不用的文件还会拖累电脑。而沨沄极客是工程师,拥有我当时不具备的归档习惯和思维。

避免在外置存储上开启 Spotlight

最后一条建议是:如无必要,则避免让 Spotlight 索引外置存储。

若是性能极佳的移动硬盘倒也无妨,但如果是U盘甚至披着读卡器的存储卡,其读写速度通常非常糟糕,而 Spotlight 又会默认为整个存储建立索引,从而导致连打开U盘或存储卡都非常卡顿。这就像一条本来就窄的走廊,你作为主角还没挤过去,整个不那么紧急的后勤部门(Spotlight)倒是先霸占了所有走道空间。

如果你的电脑平时很流畅,但一插上外置存储就开始卡顿,几乎可以断定,是 Spotlight 在调兵强攻外置存储。

一般而言,外置存储可能只是一个定期备份,我们不会在其中频繁读写,更不会在外置硬盘中深度搜索,因而 Spotlight 不仅多余,而且有害——要是 SanDisk 这种读写稍微频繁就直接锁死报废的垃圾货色,很可能连盘带数据全部损毁。

方法:先把想要屏蔽的外置存储接入电脑,然后移步系统设置,找到“Siri & Spotlight”,拉到最底下,点开“Spotlight Privacy…”,在弹出页面中将目标外置存储添入其中,Spotlight 以后就不会骚扰此地。

Alt text
避免索引外置存储

撤走 Spotlight 后,外置存储的访问速度将明显提升,打开有上千个文件的文件夹,也仿佛在浏览电脑内置数据,而我测试的还是五十块钱的国产U盘和TF卡。

小结

落笔之前,我早已料到,以关闭一部分功能为代价换来更流畅的访问速度,此类思路容易引起反感,很可能被批评“不如直接关机”。但一个功能的存在并不意味着合理,尤其不意味着对所有人都合理,Spotlight 天生不稳定,而使用者的工作越是沉重,它越是不可靠,此时就要考虑丢车保帅。

某种程度上,本方案仍然是头痛医头、脚痛医脚,类似于放血疗法,并未从根本上解决 Spotlight 索引问题,在极端情况下,如果你的电脑上有十亿个经常访问的文件——搞科研的人很可能有那么多细碎文件——那么完全无药可救,或许唯一的办法是告别 macOS。


  1. 因此,任何基于 Spotlight 索引二次开发的文件搜索工具都是胡扯,既然 Spotlight 本身都不可靠,那么这些搜索工具必然会遗漏大量文件,个人认为,这种工具没有任何存在的意义。我仅在很多年前的文章中推荐过一次这类工具,那也仅仅是因为所涉工具解决了多文件夹搜索,而当我自己另行实现后,就再也没有留存这些搜索工具的理由了。

author_avatar

Lawyer, macOS/iOS Automation Amateur