locale-archive
많은 Linux 배포판에서 파일이 선호되는 이유와 각 로케일에 대해 컴파일된 파일에 비해 파일의 장점이 어느 정도인지 궁금합니다 .
답변1
예를 들어, 로케일 아카이브에는 시스템 매뉴얼 페이지가 작성된 언어가 포함되어 있습니다. 이 메모리 매핑을 사용하면 디스크 읽기 작업을 수행하는 데 필요한 시스템 호출을 방지하여 파일을 메모리에서 읽을 수 있으므로 더 빠른 액세스가 가능합니다.
메모리 매핑 파일(공유 라이브러리와 마찬가지로) 프로세스의 가상 메모리의 일부입니다.맨 위명령, VIRT 필드.
따라서 메모리에 매핑된 로케일 아카이브 부분은 실제로 메모리에 한 번만 존재하는 glibc를 사용하는 각 프로세스의 가상 메모리(기본적으로 모든 것)에 추가됩니다.
마지막으로, 각 프로세스에 대해 가상 메모리는 프로세스의 실제 메모리, 즉 메모리 매핑된 로케일 아카이브 부분의 양을 과대평가합니다.
답변2
성능.
아래 로케일 파일은 /usr/share/i18n
약간의 구문 분석이 필요한 텍스트 파일입니다. 이를 로드하는 각 프로세스는 이를 구문 분석해야 합니다.
locale-archive
애플리케이션이 메모리의 데이터에 액세스하는 방법에 더 가까운 이진 형식을 사용합니다. 그 자체로는 구문 분석이 필요하지 않습니다. 파일을 열고 데이터 구조를 읽으면 됩니다.지도파일이 메모리에 기록됩니다).
또한 메모리 매핑된 파일은 프로세스 간에 공유될 수 있으므로 각 프로세스가 파일을 구문 분석하고 메모리 내 데이터 구조의 자체 복사본을 구축해야 하는 시나리오에 비해 메모리가 절약됩니다.
여러 개의 작은 파일 대신 하나의 큰 파일을 사용하면 모든 관련 데이터가 더 빠르게 로드됩니다. 파일 하나만 열면 되고 디렉터리에 있는 파일을 열거할 필요가 없습니다.