Omvänd sidobjekt-index
HotPDF underhåller ett dokumentlokalt omvänt index från sidobjektets identitet till den nollbaserade sidpositionen
Sökningsbeteende
GetPageArrIndexForObjectNumber accepterar ett PDF-objektnummer, medan GetPageArrIndexForObject accepterar antingen ett upplöst sidobjekt eller en THPDFLink
Båda metoderna returnerar -1 när värdet inte identifierar en aktuell sida
Om felformaterad indata exponerar samma identitet mer än en gång vinner den första sidan i dokumentordningen deterministiskt
Byggnation och ogiltigförklaring
Indexet byggs lat vid första selokningen och använder separata öppen-adresserade tabeller för objektnummer och upplösta objektspekare
Inläsning, återställning, tillägg, borttagning, kopiering, ersättning, flyttning, omkastning, byte, omsortning eller avstämning av sidor ogiltigförklarar tabellerna
Nästa selokning bygger om båda tabellerna från den aktuella sidordningen, så mutationskostnaden inkluderar inte en ivrig indexombuggning
Prestanda och ägande
Tabellerna håller sin lastfaktor under hälften och ger förväntad konstant-tid-selokning efter en byggnation av komplexitet O(sidantal)
En regressionsspärr utför en miljon selokningar efter mutation i en tabell med 100 000 sidor och kräver p95-latens under 5 mikrosekunder på båda stödda Windows-mål
Indexet lagrar icke-ägande objektspekare och frigörs tillsammans med sin THotPDF-instans
Mutera inte en THotPDF-instans samtidigt som du söker efter sidor, eftersom mutation av den inlästa dokumentgrafen förblir anroparallelliserad
Se även: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics