Co to jest icon-theme.cache?

10

Kiedy uruchomię następujące polecenie na moim Lubuntu 12.10

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

Otrzymuję następujące informacje (po dodaniu daty ostatniej modyfikacji i rozmiaru):

/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

Wszystkie te pliki, jak pokazano w poniższym przykładzie, są typu TrueType font data:

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

Moje pytania, wszystkie ściśle powiązane, to:

  • Co to jest icon-theme.cachei jaka jest jego funkcja? Jakie jest znaczenie cachetych nazw plików? Tag cache definicja brzmi: „ cache przechowuje dane tymczasowe w pobliżu tak, że może on być pobierane znacznie szybciej niż ściągam go od prawdziwego sklepu podkładowej (dysk, sieć), lub ponownie przeliczenie wynik w całym ”.
  • Dlaczego rozmiary plików są tak zróżnicowane? Czy te gnomei hicolorsą największe, ponieważ zapewniają ikony zastępcze (jak gdzieś czytam)?
  • Co z datami? Jestem tego pewien tylko ubuntu-monodlatego, że pojawiły się, gdy zainstalowałem light-themesna 20130408. Czy te pliki są modyfikowane podczas zmiany motywów, czy też daty są tylko odbiciem daty instalacji?
Społeczność
źródło

Odpowiedzi:

12

Aby zrozumieć, dlaczego potrzebujemy tych plików, musisz najpierw zrozumieć koncepcję mapowania plików do pamięci .

Pliki mapowane na pamięć : Pliki mapowane na pamięć to segmenty pamięci wirtualnej, które są bezpośrednio mapowane na plik fizyczny na dysku, bajt po bajcie. Ma wiele zalet w stosunku do tradycyjnych operacji we / wy opartych na strumieniu, takich jak wydajność podczas losowego dostępu do dużych plików lub możliwość współdzielenia zmapowanej pamięci między różnymi wątkami i procesami.

Dostęp do plików mapowanych w pamięci jest szybszy niż korzystanie z bezpośrednich operacji odczytu i zapisu z dwóch powodów. Po pierwsze, wywołanie systemowe jest o rząd wielkości wolniejsze niż zwykła zmiana lokalnej pamięci programu. Po drugie, w większości systemów operacyjnych mapowanym obszarem pamięci jest pamięć podręczna stron jądra (pamięć podręczna plików), co oznacza, że ​​nie trzeba tworzyć kopii w przestrzeni użytkownika.

Teraz, zadając pytania jeden po drugim:

  1. Co to jest icon-theme.cache i jaka jest jego funkcja? Jakie jest znaczenie pamięci podręcznej w tych nazwach plików?

    Plik icon-theme.cache zawiera buforowane informacje o ikonach w drzewie katalogów poniżej określonego katalogu (który akurat jest tym, który zawiera index.themedany motyw).

    GTK + może używać plików pamięci podręcznej, aby uniknąć dużej liczby wywołań systemowych i narzutu związanego z wyszukiwaniem dysku podczas uruchamiania aplikacji. Ponieważ format plików pamięci podręcznej pozwala na mapowanie pamięci współdzielone przez wiele aplikacji, ogólne zużycie pamięci jest również zmniejszone.

  2. Dlaczego rozmiary plików są tak zróżnicowane?

    Rozmiary plików zależą od liczby ikon w motywie ikon.

  3. Co z datami?

    Jeśli weźmiemy pamięć podręczną, coś jest obecne w pamięci podręcznej tylko wtedy, gdy jakiś proces uzyskuje dostęp do określonej lokalizacji pamięci i pozostaje tam, chyba że pamięć podręczna jest pełna i ten element musi zostać usunięty.

    Dlatego data modyfikacji najprawdopodobniej zależeć będzie od tego, kiedy jakiś proces ją zaktualizuje. W takim przypadku może być tak, że użyto ikon z motywu.

    Rzeczywiście istnieje polecenie aktualizacji pamięci podręcznej ikon o nazwie gtk-update-icon-cache.

Źródła i dalsze informacje:

Zielony
źródło