В 7 раз быстрее GrandPerspective на той же домашней папке

Посмотрите, чем забит ваш Mac.
За секунды, а не за минуты.

Layland сканирует диск и рисует каждый файл прямоугольником, площадь которого равна занятому месту. Забытая виртуальная машина на 38 ГБ видна с первого взгляда. Домашняя папка из 3,3 миллиона файлов сканируется за 14 секунд.

Возврат в течение 14 дней, без лишних вопросов

macOS 15 Sequoia или новее · Apple silicon и Intel · Нативное приложение на Swift

Layland показывает папку разработки на 54 ГБ из 1,5 миллиона файлов в виде тримапа с объёмным затенением, раскрашенного по типам файлов; на боковой панели легенда и сведения о сканировании

В чём беда

«Диск почти заполнен».
Заполнен чем?

Finder показывает папки списком, а по списку не видно, что сколько весит. Раздел «Хранилище» в настройках записывает половину диска в «Системные данные», и на этом объяснения заканчиваются. du обходит домашнюю папку больше минуты, а потом вываливает стену чисел.

Тримап, или древовидная карта, показывает весь диск на одном экране. Каждый файл здесь прямоугольник по размеру занятого места, а каждая папка складывается из прямоугольников своего содержимого. Что много весит, то и выглядит большим. Вы сразу замечаете забытые симуляторы Xcode, образ Docker на 22 ГБ и файлы рендера из проекта, сданного ещё в 2023 году, и разбираетесь с ними.

Поближе

Одно окно, весь диск

Та же папка, раскрашенная по дате последнего изменения, в палитре Jewel: почти всё синее и фиолетовое, годами не тронутое, а свежая работа красная и оранжевая
Цвет по возрасту. Тёплый цвет значит, что файл недавно менялся, холодный, что его годами никто не трогал. Старое и забытое находится сразу.
Домашняя папка на 395 ГБ рядом со свободным местом и остальной частью диска на 2 ТБ, показанными штриховкой; домашняя папка занимает правый нижний угол
Show Free Space. Просканированная папка рядом со свободным местом и остальным содержимым диска, всё в одном масштабе. Здесь это домашняя папка на 395 ГБ на диске в 2 ТБ.
Поиск по .zip: каждый zip-архив подсвечен своим цветом, всё остальное приглушено, в строке состояния 6323 совпадения
Поиск. Введите часть имени, здесь .zip, и всё, что не подходит, потускнеет. На это уходит около 50 мс даже при миллионах файлов.
Та же папка разработки, сгруппированная по расширению: по блоку на каждый вид файлов, изображения розовые, исходный код бирюзовый, архивы оранжевые, и каждый блок разбит по расширениям
Группировка по расширению. View ▸ Group By ▸ File Extension собирает все файлы по виду, а затем по расширению, где бы они ни лежали. Все ваши видео или каждый .zip превращаются в один блок.

Скорость

В семь раз быстрее GrandPerspective.

Другие программы для анализа диска заставляют ждать так долго, что можно успеть сварить кофе, и к концу сканирования вам уже всё равно. Layland достаточно быстр, чтобы запускать его всякий раз, когда стало любопытно. Замеры настоящие: вся домашняя папка, 3,3 миллиона файлов, запись ускорена в десять раз.

~ · 3,32 млн файлов · 500 тыс. папок
Layland 0.0 s
du -sk 0.0 s
GrandPerspective 0.0 s
ПапкаФайлыПапкиGrandPerspectiveLaylandВо сколько раз быстрее
~/dev1,55 млн234 тыс.42,2 с6,3 с6,7×
~/Library892 тыс.126 тыс.31,2 с4,3 с7,2×
~ (домашняя папка)3,32 млн500 тыс.97,5 с14,2 с6,9×

MacBook Pro на Apple silicon, 8 ядер, 24 ГБ. macOS 26.6, APFS на встроенном SSD, прогретый кэш, у обоих приложений есть «Доступ ко всему диску». GrandPerspective 3.8.1 собран из исходников, без песочницы, как и версия с его сайта, а время взято из его собственной записи в журнале. Число папок оба приложения насчитывают одинаковое.

Как это устроено

Откуда такая скорость

Приложение написано на нативном Swift и обходится без зависимостей. Скорость сканирования упирается не в процессор, а в то, как быстро отвечает SSD, поэтому Layland не даёт ему простаивать ни на миг.

  1. 1

    Один системный вызов на целую пачку файлов

    getattrlistbulk(2) за один раз возвращает пачку записей каталога с типом, размерами, inode и флагами. Значит, никакого stat для каждого файла, никакого FileManager и никаких объектов URL.

  2. 2

    Много папок читается одновременно

    Каждая папка становится задачей в очереди, которую разбирает пул потоков, примерно по четыре на ядро, так что у SSD всегда ждут несколько запросов. Именно это даёт основную часть отрыва от du.

  3. 3

    Пути не разбираются заново

    Каждая папка открывается через openat относительно родительской, поэтому система ищет одно имя за раз, а не проходит весь путь целиком снова и снова.

  4. 4

    Компактное дерево файлов

    Каждый файл или папка хранится как 48-байтовая запись в одном плоском массиве, а все имена лежат в общем буфере. 3,8 миллиона записей умещаются примерно в 180 МБ, и во время сканирования нет ни выделений памяти, ни подсчёта ссылок.

  5. 5

    Итоги сходятся с Finder

    Жёсткие ссылки учитываются один раз. Сканирование не выходит за пределы одного тома, но проходит по firmlink-ссылкам APFS вроде /Users, так что сканирование / даёт ту же сумму, что и Finder.

Возможности

От «что это вообще такое?» до «удалено» за пару кликов

Затенение, по которому видны папки

Объёмное затенение придаёт каждой папке мягкую выпуклость, и границы папок видны без всяких линий между ними. Силу затенения можно выбрать в View ▸ Cushion Strength: Flat, Subtle, Normal или Strong.

Цвет по типу или по возрасту

У видео, архивов, кода и фотографий свой цвет. Или раскрасьте карту по дате последнего изменения, от сегодняшнего дня до «больше пяти лет назад», чтобы найти то, к чему вы годами не прикасались.

Насколько заполнен диск

Show Free Space добавляет на карту свободное место и всё, что лежит за пределами просканированной папки. Тогда видно, чего стоит папка на фоне всего диска.

Поиск среди миллионов имён

Введите часть имени файла, и всё остальное потускнеет, примерно за 50 мс даже при миллионах файлов. Папки, в которых есть совпадения, тоже подсвечиваются. ⌘G переходит к следующему.

Посмотрели, решили

Нажмите пробел, чтобы открыть любой файл в Быстром просмотре. Покажите его в Finder или переместите в Корзину, не уходя с карты. Без вашего подтверждения ничего не удаляется.

Всё с клавиатуры

Стрелки переводят выделение на соседние прямоугольники. ⌘[ выделяет папку, в которой лежит элемент, а ⌘] самый крупный элемент внутри неё, так что до самого большого файла можно добраться за несколько нажатий.

Сохраните сканирование и откройте мгновенно

Файлы .layland сжаты: домашняя папка из 3,8 миллиона файлов сохраняется в 64 МБ и снова открывается за 0,3 секунды, так что к ней можно вернуться позже, не сканируя заново.

Ваши цвета

Выберите одну из пяти встроенных палитр или создайте свою в редакторе, который, пока вы подбираете цвета, показывает образец со всеми категориями. Палитр можно сохранить сколько угодно.

Окно меняет размер без рывков

Карта раскладывается и рисуется в фоне. 3,8 миллиона файлов раскладываются примерно за 50 мс, а пока вы тянете край окна, предыдущее изображение растягивается под новый размер, так что картинка никогда не замирает.

Приватность

Список ваших файлов не покидает Mac.

Layland читает имена файлов, размеры и даты, и больше ничего. Сами файлы приложение не открывает, и отправлять их ему некуда. Нет ни аккаунта, ни аналитики, ни отчётов о сбоях.

В сеть приложение обращается за двумя вещами, и ни одно обращение не несёт ничего о ваших файлах. Когда вы вводите лицензионный ключ, оно спрашивает у Gumroad, действителен ли ключ, и потом повторяет проверку примерно раз в месяц. И раз в день, если вы согласились, когда оно спросило, проверяет на этом сайте, нет ли новой версии.

Чтобы видеть всё, включая данные других приложений в ~/Library, выдайте Layland «Доступ ко всему диску» в Системных настройках. Без него Layland измеряет только те папки, которые macOS разрешает читать, а перед тем как заглянуть в «Рабочий стол», «Документы» и «Загрузки», спрашивает разрешения.

Полная политика конфиденциальности короткая. Исходный код опубликован, так что ничему не нужно верить на слово.

Цена

Сканирование бесплатно. Один платёж, и видны все имена.

Бесплатная версия сканирует любую папку или диск и рисует полную карту. Лицензия добавляет подробности, без которых не навести порядок.

Возврат в течение 14 дней, без лишних вопросов

Бесплатно

$0

Без ограничения по времени, без аккаунта

  • Сканирование любой папки, диска или внешнего накопителя
  • Полный тримап на полной скорости
  • Имена папок на два уровня вглубь
  • Цвет по типу или по возрасту, все палитры
  • Показ свободного места
Скачать

Лицензионный ключ приходит по почте. Вставьте его в Layland ▸ License, и приложение разблокируется сразу. Возврат в течение 14 дней, без лишних вопросов. Исходный код опубликован, так что его можно прочитать или собрать приложение самостоятельно.

Частые вопросы

Вопросы

Чем Layland отличается от GrandPerspective, DaisyDisk или Disk Inventory X?

Идея у них общая: GrandPerspective и Disk Inventory X тоже рисуют тримапы, а DaisyDisk рисует кольца. Разница в скорости. На одной и той же домашней папке Layland справляется за 14 секунд, а GrandPerspective тратит 97. Дальше дело в деталях: объёмное затенение, цвет по возрасту, показ свободного места, быстрый поиск и изменение размера окна без рывков.

Зачем Layland «Доступ ко всему диску»?

Можно обойтись и без него, но тогда macOS прячет часть ~/Library и контейнеры других приложений, а место часто уходит именно туда. С «Доступом ко всему диску» итоги Layland сходятся с Finder. Приложение читает только имена, размеры и даты.

Можно ли удалять файлы прямо из Layland?

С лицензией можно перемещать файлы в Корзину: выделите файл, выберите Item ▸ Move to Trash и подтвердите. Безвозвратно приложение ничего не удаляет, так что всё можно вернуть из Корзины, как обычно.

Работает ли Layland с внешними дисками и сетевыми томами?

Да. Выберите диск или любую папку на нём. Сканирование не выходит за пределы выбранного тома и не заходит на другие подключённые диски, так что цифры относятся только к этому диску.

Есть ли Layland в Mac App Store?

Пока нет. Приложение распространяется прямо с этого сайта, подписано сертификатом Apple Developer ID и прошло нотаризацию у Apple. Версия для App Store, в песочнице, в планах.

На каких Mac работает Layland?

На любом Mac с macOS 15 Sequoia или новее, с Apple silicon или Intel. Быстрее всего на встроенном SSD, потому что приложение устроено так, чтобы нагружать SSD множеством запросов одновременно.

Можно посмотреть исходный код?

Да. Он опубликован под лицензией FSL-1.1-ALv2, которая через два года после каждого выпуска становится Apache 2.0. Читайте его или соберите приложение сами: github.com/daformat/layland.

Ключ куплен, но я не могу его найти.

Он в письме с чеком о покупке и в вашей библиотеке Gumroad, в разделе Layland.

Узнайте, что съедает место, за 14 секунд.

Скачайте, укажите домашнюю папку и убедитесь сами.

Возврат в течение 14 дней, без лишних вопросов