我很好奇为什么locale-archive
文件在许多 Linux 发行版中是首选,以及它相对于每个语言环境的编译文件的优势是什么以及在多大程度上。
答案1
答案2
表现。
下面的语言环境文件/usr/share/i18n
是需要一些解析的文本文件。每个加载它们的进程都必须进行解析。
locale-archive
采用二进制格式,更接近应用程序访问内存中数据的方式。本质上不需要解析:只需打开文件并读取数据结构(或者更确切地说,事实上,地图文件写入内存)。
此外,内存映射文件可以在进程之间共享,因此与每个进程必须解析文件并构建自己的内存数据结构副本的方案相比,这可以节省内存。
拥有一个大文件而不是许多小文件可以更快地加载所有相关数据:只需打开一个文件,无需枚举目录中的文件等。