操作系统如何管理字体

操作系统如何管理字体

操作系统(Mac/Windows/Linux)如何管理字体?

操作系统是否会将每个已安装字体的副本加载到内存中,然后任何需要该字体的应用程序都可以使用该字体?这是否意味着安装太多未使用的字体(尤其是大字体 - 数 MB - 字体)会不必要地消耗内存?

或者每个应用程序只加载其需要的字体副本。它如何知道安装了哪些字体?

答案1

大多数操作系统都有一个安装字体的目录。例如,在 Linux 中,它是/usr/local/share/fonts/usr/share/fonts、之一~/fonts。可以使用字体的程序将扫描这些文件夹或从另一个程序生成的列表中读取可用字体。在 Linux 中,这是由 完成的fc-cache

无论如何,除非正在使用字体,否则无需将其加载到内存中。程序只需知道可用字体的路径即可。一旦用户请求特定字体,就会从可用字体中选择并使用该字体。

所以,安装多个字体不会消耗内存。它会使生成字体缓存的过程变慢(并且可能更耗内存),但只有在添加新字体时才需要运行。

答案2

第一的:计算机使用、显示等的所有内容都必须加载到内存中 - 这是无法避免的。记忆

第二:您可以安装所有想要的字体。与计算机上的大多数内容一样,字体也会被编入索引 - 因此查找、访问这些字体的时间不会发生明显变化。有关索引

第三:应用程序通常只加载它需要的内容 - 加载所有内容以备不时之需是一种糟糕的软件设计。底层操作系统为应用程序提供了一些 API,以便访问字体等内容,请参阅此链接:Windows API

相关内容