Что такое icon-theme.cache?


10

Когда я запускаю следующую команду на моем Lubuntu 12.10

[11:09 PM] ~ $ find /usr/share/icons/ -iname icon-theme.cache -type f

Я получаю следующее (после добавления даты и размера последнего изменения):

/usr/share/icons/lubuntu/icon-theme.cache              20121125  61.2 KiB
/usr/share/icons/Humanity-Dark/icon-theme.cache        20120810  40.6 KiB
/usr/share/icons/Humanity/icon-theme.cache             20120810 931.9 KiB
/usr/share/icons/gnome/icon-theme.cache                20121017  65.8 MiB
/usr/share/icons/ubuntu-mono-light/icon-theme.cache    20130408 140.0 KiB
/usr/share/icons/LoginIcons/icon-theme.cache           20130408   628 bytes
/usr/share/icons/ubuntu-mono-dark/icon-theme.cache     20130408 139.9 KiB
/usr/share/icons/hicolor/icon-theme.cache              20130406  12.4 MiB
/usr/share/icons/elementary-mono-dark/icon-theme.cache 20120926  12.4 KiB

И все эти файлы, как показано в примере ниже, имеют тип TrueType font data:

[11:09 PM] ~ $ file /usr/share/icons/hicolor/icon-theme.cache
/usr/share/icons/hicolor/icon-theme.cache: TrueType font data

Мои вопросы, все тесно связанные:

  • Что такое icon-theme.cacheи какова его функция? Что означает cacheв этих именах файлов? Определение тега кеша таково: « кеш хранит временные данные поблизости, чтобы их можно было извлечь намного быстрее, чем извлекать их из реального резервного хранилища (диск, сеть) или заново вычислять некоторый результат ».
  • Почему размеры файлов такие разные? Является ли gnomeи hicolorте , крупнейшие , потому что они обеспечивают иконки замещающих (как я где - то читал)?
  • Как насчет дат? Я уверен только в том ubuntu-mono, что они появились, когда я установил их light-themesна 20130408. Так что эти файлы изменяются в процессе переключения тем или даты просто отражают дату установки?

Ответы:


12

Чтобы понять, зачем нам нужны эти файлы, вам нужно сначала понять концепцию отображения файлов в память .

Файлы с отображением в памяти : Файлы с отображением в памяти - это сегменты виртуальной памяти, которые напрямую отображаются в физический файл на диске, побайтово. Он имеет ряд преимуществ по сравнению с традиционным потоковым вводом-выводом, например, производительность при произвольном доступе к большим файлам или возможность совместного использования отображенной памяти между различными потоками и процессами.

Доступ к отображенным в память файлам быстрее, чем при использовании операций прямого чтения и записи по двум причинам. Во-первых, системный вызов на несколько порядков медленнее, чем простое изменение локальной памяти программы. Во-вторых, в большинстве операционных систем отображаемая область памяти фактически является кешем страниц ядра (файловым кешем), что означает, что в пространстве пользователя не нужно создавать копии.

Теперь, отвечая на ваши вопросы один за другим:

  1. Что такое icon-theme.cache и какова его функция? Что означает кеш в этих именах файлов?

    Файл icon-theme.cache содержит кэшированную информацию о значках в дереве каталогов под определенным каталогом (который является тем, который содержит index.themeдля конкретной темы).

    GTK + может использовать файлы кэша, чтобы избежать большого количества системных вызовов и поиска диска при запуске приложения. Поскольку формат файлов кэша позволяет им отображать память, совместно используемую несколькими приложениями, общее потребление памяти также уменьшается.

  2. Почему размеры файлов такие разные?

    Размеры файлов зависят от количества значков в теме значков.

  3. Как насчет дат?

    Если мы берем кеши памяти, что-то присутствует в кеше, только если какой-то процесс обращается к определенной ячейке памяти и остается там, если кеш не заполнен и этот элемент не требуется удалить.

    Следовательно, дата модификации, скорее всего, будет зависеть от того, когда какой-либо процесс обновил ее. В этом случае это может быть когда использовались иконки из темы.

    Действительно, есть команда для обновления кэша значков с именем gtk-update-icon-cache.

Источники и дополнительная информация:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.