什么是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这些文件名的含义是什么?该高速缓存标签的定义是这样的:“ 一个高速缓存存储临时数据附近,这样可以比从实际后备存储(磁盘,网络)获取它,或再次遍布重新计算了一些成绩更快速地检索 ”。
  • 为什么文件大小如此多样?是gnomehicolor那些最大的,因为他们提供的回退图标(如我在其他地方见过)?
  • 日期呢?我只能确定这些文件ubuntu-mono,因为它们是在我安装light-themes20130408时出现的。那么这些文件在切换主题的过程中是否会被修改,或者日期仅反映了安装日期?

Answers:


12

要了解为什么我们需要这些文件,您需要首先了解将文件映射到内存的概念。

内存映射文件: 内存映射文件是虚拟内存的各个部分,它们逐字节地直接映射到磁盘上的物理文件。与传统的基于流的I / O相比,它具有许多优势,例如,随机访问大文件时的性能,或在不同线程和进程之间共享映射内存的能力。

出于两个原因,访问内存映射文件比使用直接读写操作要快。首先,系统调用比对程序本地内存的简单更改要慢几个数量级。其次,在大多数操作系统中,实际上映射的内存区域是内核的页面缓存(文件缓存),这意味着无需在用户空间中创建副本。

现在,一一解答您的问题:

  1. 什么是icon-theme.cache及其功能?这些文件名中的缓存是什么意思?

    文件icon-theme.cache包含有关某个目录下的目录树中图标的缓存信息(该目录恰好包含index.theme特定主题的目录)。

    当应用程序启动时,GTK +可以使用缓存文件来避免大量的系统调用和磁盘查找开销。由于缓存文件的格式允许它们在多个应用程序之间进行内存映射共享,因此总的内存消耗也减少了。

  2. 为什么文件大小如此多样?

    文件大小取决于图标主题中图标的数量。

  3. 日期呢?

    如果我们使用内存缓存,则只有当某些进程访问特定的内存位置并且除非缓存已满且需要删除该元素,否则某些东西才会存在于缓存中。

    因此,修改日期很可能取决于某些进程何时对其进行更新。在这种情况下,可能是使用了主题图标的情况。

    实际上,确实有一个命令来更新名为的图标缓存gtk-update-icon-cache

来源和更多信息:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.