旋转的彩虹轮。每个Mac用户的仇恨都令人恐惧。作为开发人员,我们经常将计算机推到极限,运行多个IDE,旋转本地服务器,并在浏览器之间使用数十个选项卡进行杂耍。但是,当我们值得信赖的Mac开始滞后时,这不仅仅是不便,这是一种生产力杀手。虽然可能有许多放缓的原因,但最被忽视的罪魁祸首之一是磁盘空间(或缺乏磁盘)。
但是,为什么缺乏磁盘空间会导致如此明显的放缓?更重要的是,我们如何诊断是什么吞噬了我们珍贵的千兆字节?
了解磁盘空间和性能
磁盘空间不仅是存储文件的地方;这是Mac性能的关键组成部分。当您在空间上运行较低时,您的系统必须更加努力,通常会导致明显的放缓。但是,在我们深入研究之前,让我们对磁盘空间如何影响性能有基本的了解。
SSD与HDD:现代MAC配备了固态驱动器(SSD),比较旧的硬盘驱动器(HDD)更快,更可靠。但是,SSD有一个收获:当他们填补时,他们的性能会降低。当HDD接近容量时,HDD遇到了分裂问题,但SSD在较长的写作时间上挣扎。因此,如果您将SSD推到极限,则可能会损害其速度。
交换空间和虚拟内存: macOS与其他操作系统一样,使用了一个称为“交换空间”的概念。当您的RAM已满时,MACOS将开始在RAM和磁盘之间“交换”数据。此虚拟内存使您的Mac可以处理比RAM更多的任务。但这是踢脚器:如果您的磁盘几乎已满,则此交换过程变得迟钝,导致那些可怕的放缓。
开发人员的常见磁盘空间罪魁祸首
作为开发人员,我们与机器有独特的关系。我们要求性能,但我们的工具和项目也可以消耗很多空间。让我们探索一些最常见的空间造成罪魁祸首:
开发环境:虚拟机,码头容器和本地数据库可以占用很大一部分空间。例如,单个docker映像可能很轻,但是如果您有多个容器和图像,它会很快加在一起。
版本控制: git很棒,但也可以是空间猪。克隆的存储库,尤其是那些具有广泛历史或大文件的存储库,可以消耗超出您预期的空间。
构建工件:编译代码后,您将留下二进制文件,日志和临时文件。虽然它们似乎是单独的微不足道的,但它们会随着时间的推移而积累,尤其是当您从事多个项目工作时。
缓存: IDE,浏览器和其他工具使用缓存来加快操作。但是这些缓存,如果不管理,可以生长并消耗令人惊讶的磁盘空间。
大型数据集:无论您是使用机器学习模型还是测试大规模应用程序,数据集都可以庞大。尽管它们对您的工作至关重要,但它们也是太空消费的主要候选人。
MacOS特异性工具和诊断空间消耗的方法
知识就是力量。在我们收回磁盘空间之前,我们需要知道占用它的是什么。值得庆幸的是,MacOS提供了大量内置和第三方工具,以帮助我们诊断存储困扰。
内置工具:
-
关于此Mac :导航到Apple菜单>有关此Mac> Storage。在这里,您将获得储存分配的鸟眼视图。它将空间用法分为应用,照片,音频,电影和备份,使您可以快速了解从哪里开始清洁。
-
磁盘实用程序:在公用事业文件夹中找到,磁盘实用程序不仅用于修复磁盘。 “信息”按钮提供了有关选定驱动器的详细信息,包括容量,二手空间和可用空间。
第三方工具:
-
DaisyDisk:具有直观且视觉上吸引人的界面,Daisydisk提供了存储的图形表示,使您可以快速识别和删除大型文件和文件夹。
-
OmniDiskSweeper:此工具提供了更详细的,基于列表的文件和目录的视图,对大小排序。对于那些喜欢粒度而不是图形表示的人来说,这是完美的。
-
GrandPerspective:另一个视觉工具,Grandperspective使用Treemaps显示文件系统的内容,从而更容易瞥见大型文件或目录。
-
OnyX:Onyx是一种多功能工具,用于维护和优化Mac。它为MacOS文件系统提供了深入的研究,允许用户验证启动磁盘,重建数据库并清除各种缓存。对于开发人员而言,其详细的日志和自动化脚本可以是救生员。该工具提供了颗粒状的控制水平,非常适合那些知道自己围绕MacOS并希望将其系统保持最佳状态的人。
终端命令:
对于那些喜欢命令行的人,MacOS提供了强大的实用程序来剖析存储使用情况:
-
du
:此命令提供了目录空间用法的摘要。例如,du -sh *
将在当前目录中显示每个文件和目录的大小。 -
df
:此“磁盘免费”命令显示Mac的文件系统上使用的磁盘空间的数量。 -
ncdu
:基于NCurses的磁盘用法查看器,ncdu
提供了一种更具交互性和用户友好的方式来探索终端的磁盘用法。
定期维护的提示
现在,我们已经装备了诊断工具,让我们谈谈预防。定期维护可以使磁盘空间问题避免使用,从而确保您的Mac顺利进行。
-
预定的清理:设置日历提醒或使用自动化工具(例如Automator或Hazel)执行常规清理。
-
外部存储:考虑将大型数据集或很少访问的文件访问到外部驱动器或云存储解决方案。
-
定期更新和修剪开发工具:过时的SDK,库或工具可以随着时间的推移积累。定期查看并删除不再需要的内容。
-
请注意您的克隆:与Git一起工作时,请考虑使用浅层克隆或稀疏结帐用于大型存储库。这样可以确保您只提取所需的数据。
可行的步骤,用于恢复磁盘空间并提高性能
现在我们拥有知识和工具,现在该是时候卷起袖子并开始工作了。这是将Mac整理并确保其最佳运行的分步指南。
1。从低悬挂的水果开始:
-
空垃圾:这听起来很基本,但是您会惊讶于您已经决定删除的文件占用了多少空间。
-
清除浏览器caches :Web浏览器存储了大量数据。定期清除其缓存可以释放大量空间。
-
删除旧下载:下载文件夹通常是旧文件的墓地。按大小和日期排序,然后清除您不需要的东西。
2。使用诊断工具深入研究:
-
使用 daisydisk 或 OmnidiskSweeper 之类的工具来识别大文件或文件夹。要谨慎,并确保您不会删除基本文件。
-
对于开发人员,请特别注意旧的项目文件夹,过时的虚拟机或陈旧的Docker Images。
3。管理您的开发环境:
-
优化docker :使用
docker system prune
等命令定期修剪未使用的docker对象。 -
清理IDE :集成的开发环境可以累积缓存和日志文件。 JetBrains的IDE等工具具有内置的缓存无效选项。
-
存档旧项目:而不是删除,而是考虑将旧项目存档到外部存储或云解决方案。
4。自动清理自动化:
-
使用Macos的Automator创建定制工作流以进行常规清理。
-
考虑可以监视文件夹并根据自定义规则执行操作的第三方应用程序。
5。考虑升级:
如果您始终耗尽空间,可能是时候考虑硬件解决方案了:
-
升级您的内部存储:如果您的Mac模型允许,请考虑升级到较大的SSD。
-
外部SSD :现代外部SSD很快,可以是您内部存储的无缝扩展。
结论
混乱的磁盘不仅仅是丢失的空间;这是关于生产力失去的。通过定期诊断和解决磁盘空间问题,您可以确保Mac在编码工作中仍然是可靠的合作伙伴。但是,我们优化Mac的旅程并没有结束。在即将发表的文章中,我们将更深入地研究我们今天所涉及的特定情况,例如管理Docker Images,优化Web项目,掌握CLI命令用于磁盘管理等等。请记住,干净的Mac是一个快乐的Mac,而快乐的Mac为一个快乐的开发人员提供了成功。请继续关注更多见解和可行的技巧,以使您的开发环境保持峰值状态!