O que é o icon-theme.cache?

10

Quando executo o seguinte comando no meu Lubuntu 12.10

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

Recebo o seguinte (após adicionar a data e o tamanho da última modificação):

/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

E todos esses arquivos, como mostrado no exemplo abaixo, são do tipo TrueType font data:

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

Minhas perguntas, todas estreitamente relacionadas, são:

  • O que é icon-theme.cachee qual é a sua função? Qual é o significado cachedesses nomes de arquivo? A definição da tag de cache é a seguinte: " um cache armazena dados temporários nas proximidades, para que possam ser recuperados muito mais rapidamente do que buscá-los no armazenamento de backup real (disco, rede) ou recalcular alguns resultados novamente ".
  • Por que os tamanhos de arquivo são tão diversos? Os gnomee hicolorsão os maiores porque fornecem os ícones de fallback (como li em algum lugar)?
  • E as datas? Eu tenho certeza disso ubuntu-monoporque eles apareceram quando eu instalei light-themesno 20130408. Então, esses arquivos são modificados durante a alternância de temas ou as datas são apenas um reflexo da data da instalação?
Comunidade
fonte

Respostas:

12

Para entender por que precisamos desses arquivos, você precisa primeiro entender o conceito de mapeamento de arquivos para a memória .

Arquivos mapeados na memória: os arquivos mapeados na memória são segmentos da memória virtual mapeados diretamente para um arquivo físico no disco, byte a byte. Ele possui vários benefícios em relação às E / S tradicionais baseadas em fluxo, como desempenho durante o acesso aleatório a arquivos grandes ou a capacidade de compartilhar a memória mapeada entre diferentes threads e processos.

Acessar arquivos mapeados na memória é mais rápido do que usar operações diretas de leitura e gravação por dois motivos. Em primeiro lugar, uma chamada de sistema é uma ordem de magnitude mais lenta que uma simples alteração na memória local de um programa. Em segundo lugar, na maioria dos sistemas operacionais, a região da memória mapeada é realmente o cache da página do kernel (cache do arquivo), o que significa que nenhuma cópia precisa ser criada no espaço do usuário.

Agora, respondendo suas perguntas uma a uma:

  1. O que é o icon-theme.cache e qual é a sua função? Qual o significado do cache nesses nomes de arquivos?

    O arquivo icon-theme.cache contém informações em cache sobre os ícones na árvore de diretórios abaixo de um determinado diretório (que por acaso é o que contém index.themeo tema em particular).

    O GTK + pode usar os arquivos de cache para evitar muitas sobrecargas de chamada do sistema e busca de disco quando o aplicativo é iniciado. Como o formato dos arquivos de cache permite que eles sejam mapeados na memória compartilhada entre vários aplicativos, o consumo geral de memória também é reduzido.

  2. Por que os tamanhos de arquivo são tão diversos?

    Os tamanhos dos arquivos dependem do número de ícones no tema do ícone.

  3. E as datas?

    Se usarmos cache de memória, algo estará presente no cache apenas se algum processo acessar um local de memória específico e permanecer lá, a menos que o cache esteja cheio e esse elemento precise ser removido.

    Portanto, a data da modificação provavelmente dependerá de quando algum processo a atualizar. Nesse caso, pode ser quando os ícones do tema foram usados.

    Existe, de fato, um comando para atualizar o cache do ícone chamado gtk-update-icon-cache.

Fontes e informações adicionais:

verde
fonte