Кэш дерева и повторный скан¶
DiskScope сохраняет последнее дерево скана, чтобы повторный скан без изменений занимал секунды.
Как это работает¶
- После успешного скана дерево, настройки и текущий
FSEventsevent ID сохраняются в~/Library/Application Support/DiskScope/scan-cache.plist. - При повторном скане DiskScope проверяет версию формата, версию приложения,
корень, том,
minimumFileSizeиtreatsPackagesAsSingleItems. - Затем запрашивает
FSEventsс сохранённого event ID: - нет значимых изменений → дерево берётся из кэша;
- новые, удалённые или изменённые файлы → полный скан.
- После полного скана кэш перезаписывается; старый файл не растёт.
Каталог ~/Library/Application Support/DiskScope исключается из скана, чтобы
кэш не учитывал сам себя.
Инвалидация¶
Кэш считается недействительным, если изменились:
- версия формата кэша;
CFBundleShortVersionStringилиCFBundleVersion;- корневая папка или UUID тома;
minimumFileSizeилиtreatsPackagesAsSingleItems;- файловая система сообщила о новых/удалённых/изменённых путях.
При недоступном FSEvents выполняется обычный полный скан.
Очистка¶
Настройки → Сканирование → Кэш дерева скана → Очистить. Кэш также можно удалить вручную:
Ограничения¶
- Хранится один последний корень; смена папки перезаписывает кэш.
- При любом изменении выполняется полный скан, а не частичное обновление поддеревьев; это гарантирует корректные суммы.
- Кэш может занимать десятки мегабайт на миллионах узлов.
- В кэше есть имена и размеры файлов; он хранится только локально.