페이지 객체 역 인덱스

HotPDF는 페이지 객체 정체성에서 0부터 시작하는 페이지 위치로의 문서 로컬 역 인덱스를 유지합니다

조회 동작

GetPageArrIndexForObjectNumber는 PDF 객체 번호를 수락하고, GetPageArrIndexForObject는 해결된 페이지 객체 또는 THPDFLink를 수락합니다

두 메서드 모두 값이 현재 페이지를 식별하지 않으면 -1을 반환합니다

잘못된 입력이 같은 정체성을 두 번 이상 노출하면 문서 순서에서 첫 페이지가 결정적으로 승리합니다

구성 및 무효화

인덱스는 첫 조회 시 지연 빌드되며, 객체 번호와 해결된 객체 포인터에 별도의 개방 주소 맵을 사용합니다

로드, 재설정, 추가, 삭제, 복사, 교체, 이동, 뒤집기, 스왑, 재정렬 또는 페이지 조정은 맵을 무효화합니다

다음 조회는 현재 페이지 순서에서 두 맵을 모두 재구성하므로, 변형 비용에 열성 인덱스 재구성이 포함되지 않습니다

성능 및 소유권

맵은 로드 팩터를 절반 미만으로 유지하고, O(페이지 수) 빌드 후 예상 상수 시간 조회를 제공합니다

회귀 게이트는 100,000페이지 테이블에서 변형 후 백만 번의 조회를 수행하고, 두 지원 Windows 대상 모두에서 p95 대기 시간이 5 마이크로초 미만이어야 합니다

인덱스는 비소유 객체 포인터를 저장하고 THotPDF 인스턴스와 함께 해제됩니다

로드된 문서 그래프 변형은 호출자 직렬화로 유지되므로, 페이지 조회와 동시에 THotPDF 인스턴스를 변형해서는 안 됩니다

추가 정보: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics