7× 速度:扫描同一个个人文件夹,对比 GrandPerspective

看清是什么占满了你的 Mac。
几秒钟,而不是几分钟。

Layland 扫描你的磁盘,把每个文件画成一个方块,大小和它占用的空间成正比。那台被你忘掉的 38 GB 虚拟机,一眼就能看到。一个有 330 万个文件的个人文件夹,14 秒扫完。

14 天内无理由退款

macOS 15 Sequoia 或更高版本 · Apple silicon 和 Intel · 原生 Swift

Layland 把一个 54 GB、含 150 万个文件的开发文件夹画成带立体阴影的矩形树图,按文件类型着色,侧边栏里是图例和扫描详情

问题所在

「你的磁盘几乎已满。」
满的是什么?

访达把文件夹显示成列表,而列表看不出大小。“储存空间”设置把你一半的磁盘归进“系统数据”,然后就不管了。du 要花一分多钟才能走完一个个人文件夹,最后吐出满屏的数字。

矩形树图能在一个屏幕里展示整个磁盘。每个文件是一个方块,大小和它占的空间成正比;每个文件夹则是由这些方块拼成的一大块。大的东西,看上去就大。被遗忘的 Xcode 模拟器、22 GB 的 Docker 镜像、2023 年就已交付的项目留下的渲染文件,一眼就能认出来,然后一个个处理掉。

仔细看看

一个窗口,装下整个磁盘

同一个文件夹按最后修改日期着色,用的是 Jewel 调色板:大部分是蓝色和紫色,多年没动过;最近的工作是红色和橙色
按时间着色。暖色表示最近改动过,冷色表示多年没碰。被你遗忘的旧东西很容易找出来。
一个 395 GB 的个人文件夹,旁边是可用空间和 2 TB 磁盘的其余部分,以斜线填充的区域表示,个人文件夹位于右下方
Show Free Space。把你扫描的文件夹、可用空间和磁盘的其余部分放在一起,全部按比例画出。图中是 2 TB 磁盘上一个 395 GB 的个人文件夹。
搜索 .zip:每个 zip 压缩包都以自己的颜色亮起,其余一切变暗,状态栏显示 6,323 个匹配项
搜索:输入名称的一部分,比如这里的 .zip,不匹配的全部变暗。即使有数百万个文件,也只要大约 50 毫秒。
同一个开发文件夹按文件扩展名分组:每类文件一个区块,图片是粉色,源代码是青色,压缩包是橙色,每个区块再按扩展名细分
按扩展名分组:View ▸ Group By ▸ File Extension 会把所有文件先按类型、再按扩展名归到一起,不管它们放在哪里。你的全部视频,或者每一个 .zip,都会汇成一个区块。

速度

比 GrandPerspective 快七倍。

别的磁盘工具让你等得足够去泡杯咖啡,等扫描结束,你早就没了兴致。Layland 快到你随时好奇都能扫一下。下面是真实计时:整个个人文件夹,330 万个文件,以十倍速回放。

~ · 332 万个文件 · 50 万个文件夹
Layland 0.0 s
du -sk 0.0 s
GrandPerspective 0.0 s
文件夹文件数文件夹数GrandPerspectiveLayland快了多少
~/dev155 万23.4 万42.2 秒6.3 秒6.7×
~/Library89.2 万12.6 万31.2 秒4.3 秒7.2×
~(个人文件夹)332 万50 万97.5 秒14.2 秒6.9×

MacBook Pro,Apple silicon,8 核,24 GB 内存。macOS 26.6,内置 SSD 上的 APFS,缓存已预热,两个 app 都已获得完全磁盘访问权限。GrandPerspective 3.8.1 从源代码编译,和官网下载的版本一样不启用沙盒,按它自己的日志行计时。两个 app 报告的文件夹数量一致。

底层原理

为什么这么快

它用原生 Swift 编写,没有任何依赖。扫描的瓶颈在于 SSD 的响应速度,而不在 CPU,所以 Layland 让 SSD 自始至终都忙着。

  1. 1

    一次系统调用,读回一批文件

    getattrlistbulk(2) 一次就能返回一批目录项,连同它们的类型、大小、inode 和标志。也就是说,不用对每个文件调用 stat,不用 FileManager,也不用 URL 对象。

  2. 2

    同时读取多个文件夹

    每个文件夹都是队列里的一个工作项,由一个线程池来处理,每个核心大约四个线程,所以 SSD 手上总有几个请求在排队。领先 du 的优势,大部分来自这里。

  3. 3

    不逐级解析路径

    每个文件夹都用 openat 相对于它的父文件夹打开,系统每次只需查找一个名称,而不必每次都把完整路径解析一遍。

  4. 4

    紧凑的文件树

    每个文件或文件夹都是一条 48 字节的记录,放在同一个扁平数组里,所有名称共用一块缓冲区。380 万个条目只占大约 180 MB,扫描过程中既不分配内存,也不做引用计数。

  5. 5

    总数和访达对得上

    硬链接只计一次。扫描不会跨出所在的宗卷,但会跟随 APFS 的 firmlink(比如 /Users),所以扫描 / 得到的总数和访达显示的一致。

功能

从「这都是些什么?」到「删掉了」,点几下就行

用阴影勾出文件夹

立体阴影让每个文件夹微微隆起,不用画分隔线,也能看出文件夹从哪里开始、到哪里结束。强度在 View ▸ Cushion Strength 里选,有 Flat、Subtle、Normal 和 Strong 四档。

按类型或按时间着色

视频、压缩包、代码和照片各有各的颜色。也可以按最后修改日期着色,从今天一直到五年多以前,把那些你多年没碰过的东西找出来。

看清磁盘有多满

Show Free Space 会把可用空间,连同扫描范围之外的所有内容,一起加到图上。这样你就能看出一个文件夹在整个磁盘里占了多少。

在数百万个文件名里搜索

输入文件名的一部分,其余的全部变暗,即使有数百万个文件,也只要大约 50 毫秒。包含匹配项的文件夹也会一起亮起。按 ⌘G 跳到下一个。

先看清,再动手

按空格键,用快速查看预览任何文件。不用离开这张图,就能在访达中显示它,或者把它移到废纸篓。删除之前,总会先问过你。

全程键盘操作

方向键在相邻的方块之间移动。⌘[ 选中外面一层的文件夹,⌘] 选中其中最大的项目,敲几下键就能一路找到最大的那个文件。

保存扫描结果,随时秒开

.layland 文件是压缩过的:一个含 380 万个文件的个人文件夹,存下来只有 64 MB,重新打开只要 0.3 秒,以后回来看不必再扫一遍。

你自己的配色

从五种内置调色板里挑,或者在实时编辑器里自己调一套,挑颜色时它会用每个类别给你看一个样例。调色板想存多少就存多少。

调整窗口大小从不卡顿

图的布局和绘制都在后台进行。380 万个文件大约 50 毫秒就能排好;拖动窗口边缘时,上一帧画面会先拉伸填满,所以从不卡住。

隐私

你的文件清单只留在你的 Mac 上。

Layland 只读取文件名、大小和日期,别的一概不读。它不会打开你的文件,也没有地方可以把它们发出去。没有账号,没有统计分析,也没有崩溃报告。

它只发出两种请求,都不带任何关于你文件的信息。你输入许可证密钥时,它会向 Gumroad 确认密钥是否有效,之后大约每月再确认一次。另外,如果它问你时你同意了,它每天会来这个网站检查一次有没有新版本。

想看到全部内容,包括 ~/Library 里其他 app 的数据,请在系统设置中给 Layland 完全磁盘访问权限。没有这项权限,Layland 只统计 macOS 允许它读取的文件夹,而且读取“桌面”“文稿”和“下载”之前会先问你。

完整的隐私政策很短。源代码是公开的,所以这些话都不必只凭信任。

价格

免费扫描。一次付费,看清每一个名字。

免费版可以扫描任何文件夹或磁盘,画出完整的图。许可证则加上清理时用得着的细节。

14 天内无理由退款

免费版

$0

不限时间,不用账号

  • 扫描任何文件夹、磁盘或外置驱动器
  • 完整的矩形树图,全速运行
  • 文件夹名称显示两层
  • 按类型或时间着色,所有调色板
  • 可用空间视图
下载

许可证密钥会通过电子邮件发给你。把它粘贴到 Layland ▸ License,app 立刻解锁。14 天内无理由退款。源代码是公开的,你也可以读一读,或者自己编译。

常见问题

问与答

它和 GrandPerspective、DaisyDisk 或 Disk Inventory X 有什么不同?

思路是一样的:GrandPerspective 和 Disk Inventory X 也画矩形树图,DaisyDisk 画的是环形图。区别在速度。同一个个人文件夹,Layland 14 秒扫完,GrandPerspective 要 97 秒。其余就是细节:立体阴影、按时间着色、可用空间视图、快速搜索,以及调整窗口大小时不卡顿。

为什么需要完全磁盘访问权限?

不是必需的,但没有它,macOS 会把 ~/Library 的一部分和其他 app 的容器藏起来,而空间往往就耗在那里。有了完全磁盘访问权限,Layland 算出的总数就和访达的一致。这个 app 只读取名称、大小和日期。

它能删除东西吗?

有许可证的话,它可以把文件移到废纸篓:选中一个文件,然后选择 Item ▸ Move to Trash 并确认。它从不永久删除任何东西,所以你可以像平常一样从废纸篓里放回去。

外置驱动器和网络宗卷能用吗?

能。选择那个驱动器,或者上面的任何文件夹。扫描只在你选的宗卷里进行,不会跨到其他已装载的驱动器上,所以数字只反映这一个驱动器。

它在 Mac App Store 上有吗?

暂时没有。它直接从这个网站分发,用 Apple Developer ID 签名,并经过 Apple 公证。沙盒化的 App Store 版本已在计划之中。

能在哪些 Mac 上运行?

任何运行 macOS 15 Sequoia 或更高版本的 Mac,Apple silicon 或 Intel 都可以。在内置 SSD 上最快,因为它本来就是为了同时发出大量请求、让 SSD 一直忙着而设计的。

能看源代码吗?

能。它以 FSL-1.1-ALv2 许可证发布,每个版本发布两年后转为 Apache 2.0。可以在 github.com/daformat/layland 阅读,或者自己编译。

我买了密钥,但找不到了。

它在你的购买收据邮件里,也在你的 Gumroad 资料库中 Layland 的条目下。

14 秒,找出占空间的大户。

下载下来,让它扫一遍你的个人文件夹,亲眼看看。

14 天内无理由退款