지연 페이지 트리 로딩
HotPDF는 일반 로드 PDF 페이지 트리를 컴팩트한 자리 표시자 테이블로 유지하고, API가 페이지를 처음 필요로 할 때만 개별 페이지를 해결할 수 있습니다
활성화
LazyPageTreeThreshold는 기본적으로 4096 페이지로 설정되고, 루트가 사용 가능한 /Count 및 /Kids 구조를 노출하는 유효한 페이지 트리에 적용됩니다
로딩 전에 임계값을 0으로 설정하면 지연 페이지 트리 처리를 비활성화할 수 있습니다
임계값 미만의 파일과 잘못된 트리는 기존의 열성 복구 경로를 계속 사용합니다
랜덤 액세스
페이지에 대한 첫 액세스는 하위 트리 /Count 값을 따라 관련 없는 분기를 건너뛰고, 문서 로컬 개방 주소 인덱스를 통해 간접 객체를 해결합니다
해결된 페이지는 해당 자리 표시자 슬롯에 저장되므로 반복 액세스는 직접 캐시 적중입니다
일반 로드 페이지 API는 요청된 페이지를 투명하게 구체화하고, MaterializeLoadedPage는 호출자가 알려진 페이지를 명시적으로 준비하게 합니다
전체 확장 및 변형
MaterializeAllLoadedPages는 남은 트리를 정규 페이지 순서로 확장합니다
구조적으로 로드 페이지를 추가, 삭제, 복사, 교체, 이동, 뒤집기, 스왑, 재구축 또는 저장하는 작업은 페이지 그래프를 변형하거나 직렬화하기 전에 전체 확장을 수행합니다
이것은 읽기 중심 액세스를 순회된 분기 깊이에 비례하도록 유지하면서 기존 변형 및 저장 의미를 보존합니다
원격 측정
GetLoadedPageTreeStatistics는 강제 구체화 없이 자리 표시자 저장소, 구체화된 페이지, 순회 깊이와 작업, 객체 인덱스 용량, 캐시 활동 및 전체 확장을 보고합니다
회귀 게이트는 지원되는 Windows 대상에서 256 MiB 작업 집합 증가 상한과 500 ms 첫 랜덤 액세스 상한으로 100,000 페이지를 다룹니다
추가 정보: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics