Omvendt indeks for sideobjekter
HotPDF vedligeholder et dokumentlokalt omvendt indeks fra sideobjektidentitet til en nulbaseret sideposition
Opslagsadfærd
GetPageArrIndexForObjectNumber accepterer et PDF-objektnummer, mens GetPageArrIndexForObject accepterer enten et løst sideobjekt eller et THPDFLink
Begge metoder returnerer -1, når værdien ikke identificerer en aktuel side
Hvis misdannet input eksponerer den samme identitet mere end én gang, vinder den første side i dokumentrækkefølge deterministisk
Opbygning og invalidering
Indekset bygges dovent ved første opslag og bruger separate åbent adresserede tabeller til objektnumre og løste objektmarkører
Indlæsning, nulstilling, tilføjelse, sletning, kopiering, udskiftning, flytning, vending, ombytning, omarrangering eller afstemning af sider invaliderer tabellerne
Det næste opslag genopbygger begge tabeller ud fra den aktuelle siderækkefølge, så ændringsomkostningen ikke omfatter en ivrig genopbygning af indekset
Ydeevne og ejerskab
Tabellerne holder deres belastningsfaktor under en halv og giver forventet konstanttidsopslag efter en O(page count)-opbygning
En regressionsport udfører én million opslag efter ændring i en tabel med 100.000 sider og kræver p95-latenstid under 5 mikrosekunder på begge understøttede Windows-mål
Indekset lagrer ikke-ejede objektmarkører og frigives sammen med sin THotPDF-instans
Undlad at ændre en THotPDF-instans samtidig med sideopslag, da ændring af det indlæste dokumentgraf fortsat serialiseres af kaldende kode
Se også: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics