当我们说电脑卡顿时,有两种意思:一种是在执行特定任务时卡,例如打开 chrome 卡、开启 Photoshop 卡或者渲染视频卡;另一种是持续卡顿,在 Finder 里随便点开一个文件夹都要等进度条转上几百个轮回,同事给你传一个文件更是会导致电脑宕机。前者就像过敏,一个人如果不去特殊环境或解除特殊物质,很可能一辈子都不会遭遇麻烦,甚至意识不到自己体质如何;后者则如同地方性疾病,不能回避,只能正面应战。
macos 中最著名的地方顽疾,当属 Spotlight 索引,几乎任何能够让 Finder 都磕磕绊绊无法运行的问题都可归咎于此。而遭遇问题的人容易不见舆薪, 往往先试着关闭甚至卸载 Chrome、Microsoft Word 或微信这些耗能大户,就好像一个湿疹爆发而不止病因的人,丢掉所有的可疑家具并搞了大扫除却无济于事,其实真正的原因是结构性的:整个环境都出了大问题。
Spotlight 索引本身还挺有用,这一机制会持续在后台为文件创建索引,方便搜索。然而,Spotlight 索引从来没有稳定过[1],最夸张的一次,我分明自己都看见目标文件了,它却搜不出来。以我的经验以及在同事电脑上的测试,大概有几万个文件后,Spotlight 就完全不可靠了。Spotlight 本身不靠谱,大不了不用——我目前全靠 LaunchBar 和命令行搜索文件——但次生问题则严重得多,将直接导致电脑持续卡顿。Spotlight Index
(「Spotlight 索引的英文」)搜索结果的前三条,一般是一条教你重建的(还是 Apple 官方的)、一条骂人的以及一条询问如何关闭的,其恶名可见一斑。
我用此方法救活了周围朋友的四台电脑(数量正在不定期增加中)。
当然,关闭侧边栏中的 Recents,并不意味着彻底关掉 Recents 机制,macOS 还是会记录各个软件最近使用过的文件。这一途径更值得推荐,它既保留了访问最近常用文件的渠道,也不至于过分消耗资源。不过,单个软件的 Recents 也应当限制一下数量,具体情况还是依据各人电脑状况,量力而行。软件 Recents 数量可在系统设置「Desktop & Dock」项下的「Menu bar」一栏中调整。
注:如果你在使用 LaunchBar,则建议将软件的 Recents 数量限制在 10 到 15 个,如果数量过多,则会干扰过滤文件。另,本文截图来自 macOS 13,如您使用 macOS 14,则 Recents 设置在 Control Center 设置下。
尽可能少用标签
除了 Recents,另一方面的压力来自标签。貌似轻巧的标签,其实会给系统施加极大压力。标签虽然是文件属性之一,但并非天然属性,而是 macOS 引入的特殊机制,隔壁的 windows 则至今不支持这一机制。由于这几年 All in One 信息管理工具的持续营销,不少人认为标签已足以替代文件夹,从而大量创建标签;我自己陆陆续续用过的标签也有上千个,今年国庆前整理时发现还剩八百多个。标签看似是一笔宝贵的财产,记录了阅读和工作的足迹,其实多为绊脚石,因为绝大多数标签,根本不看也不用,主要的功能,只剩拖垮电脑。
少用标签就能缓解电脑卡顿,此事不难理解,关键是许多人可能无法接受少用乃至不用标签。其实,我在拙作《信息管理,文件为本位的方案》中,就主张标签是临时的。我把标签分为描述性标签和指示性标签,前者用于描述文件信息,后者用于指示任务进度,而一旦你足够熟悉一个领域、已经完成一系列工作,那么两类标签都可以移除。后一类紧随任务的指示性标签,应当不用解释;前一类描述性标签,仔细一想,其实事后往往也用不上,例如,我在读书时只接触过关于 惩罚性赔偿
的三五个案例,如今当了律师,档案库里有上百个相关案例,再用 惩罚性赔偿
这枚标签,颗粒度就太粗糙,搜了和没搜一样,无助于搜索文件了。
我现在仍然同时使用描述性标签和指示性标签,但仅用于我不熟悉的领域,比如做菜,因为我不专业,就只好先打一堆标签,从菜系、原料、手法等维度粗粗勾勒手头的食谱,但假以时日,这样粗颗粒的标签肯定也会谢幕。
方法:在 Finder 设置的标签一栏下,批量选中并删除无用的标签。请勿在 Finder 中直接删除,因为无法批量操作,太浪费时间。另外,如果你有 DEVONthink,还需要手动清除一下其中的标签;如果在 LaunchBar 和 Alfred 等工具中关联过标签,也请重启相关工具以更新数据。
当然,「标签必死」这样激烈的断言,我没什么兴趣大力发声,毕竟很难把自己十几年的经验一股脑儿塞给别人——写本文时没打算写,可惜我还是忍不住写了。读书时,老师总是苦口婆心劝导要「先把书读厚,再把书读薄」,结果不少人还反唇相讥:那不是到头来白忙活吗?对于这类看不见过程的人,有一首打油诗的下半首很适合送上,但不太文雅,故我只放上半首:
天上下雪不下雨,雪到地上变成雨,未如开始就下雨。
不用的文件尽快打包压缩或转移
缓解 Spotlight 的压力,最好是多管齐下,前两节旨在减少索引的生成,本节则转向及时排毒:将不用的文件打包压缩,或者转移到外置存储,既保留原始文件,也避免 Spotlight 继续为难自己(Spotlight 不会索引压缩文件中的内容)。
这套归档习惯是 @沨沄极客 前几年告诉我的,我很庆幸读书时就有人指点,因为我读的是文科,缺乏和海量数据交手的经验,以前从未意识到放着不用的文件还会拖累电脑。而沨沄极客是工程师,拥有我当时不具备的归档习惯和思维。
避免在外置存储上开启 Spotlight
最后一条建议是:如无必要,则避免让 Spotlight 索引外置存储。
若是性能极佳的移动硬盘倒也无妨,但如果是 U 盘甚至披着读卡器的存储卡,其读写速度通常非常糟糕,而 Spotlight 又会默认为整个存储建立索引,从而导致连打开 U 盘或存储卡都非常卡顿。这就像一条本来就窄的走廊,你作为主角还没挤过去,整个不那么紧急的后勤部门(Spotlight)倒是先霸占了所有走道空间。
如果你的电脑平时很流畅,但一插上外置存储就开始卡顿,几乎可以断定,是 Spotlight 在调兵强攻外置存储。
一般而言,外置存储可能只是一个定期备份,我们不会在其中频繁读写,更不会在外置硬盘中深度搜索,因而 Spotlight 不仅多余,而且有害——要是 SanDisk 这种读写稍微频繁就直接锁死报废的垃圾货色,很可能连盘带数据全部损毁。
方法:先把想要屏蔽的外置存储接入电脑,然后移步系统设置,找到「Siri & Spotlight」,拉到最底下,点开「Spotlight Privacy…」,在弹出页面中将目标外置存储添入其中,Spotlight 以后就不会骚扰此地。
撤走 Spotlight 后,外置存储的访问速度将明显提升,打开有上千个文件的文件夹,也仿佛在浏览电脑内置数据,而我测试的还是五十块钱的国产 U 盘和 TF 卡。
小结
落笔之前,我早已料到,以关闭一部分功能为代价换来更流畅的访问速度,此类思路容易引起反感,很可能被批评「不如直接关机」。但一个功能的存在并不意味着合理,尤其不意味着对所有人都合理,Spotlight 天生不稳定,而使用者的工作越是沉重,它越是不可靠,此时就要考虑丢车保帅。
某种程度上,本方案仍然是头痛医头、脚痛医脚,类似于放血疗法,并未从根本上解决 Spotlight 索引问题,在极端情况下,如果你的电脑上有十亿个经常访问的文件——搞科研的人很可能有那么多细碎文件——那么完全无药可救,或许唯一的办法是告别 macOS。
- 因此,任何基于 Spotlight 索引二次开发的文件搜索工具都是胡扯,既然 Spotlight 本身都不可靠,那么这些搜索工具必然会遗漏大量文件,个人认为,这种工具没有任何存在的意义。我仅在很多年前的文章中推荐过一次这类工具,那也仅仅是因为所涉工具解决了多文件夹搜索,而当我自己另行实现后,就再也没有留存这些搜索工具的理由了。