Pagina-object-omgekeerde index

HotPDF onderhoudt een document-lokale omgekeerde index van pagina-objectidentiteit naar nul-gebaseerde paginapositie

Opzoekgedrag

GetPageArrIndexForObjectNumber accepteert een PDF-objectnummer, terwijl GetPageArrIndexForObject ofwel een opgelost paginaobject ofwel een THPDFLink accepteert

Beide methoden retourneren -1 wanneer de waarde geen huidige pagina identificeert

Als onjuist gevormde invoer dezelfde identiteit meer dan eens blootlegt, wint de eerste pagina in documentvolgorde deterministisch

Constructie en ongeldigmaking

De index wordt lui gebouwd bij de eerste opzoeking en gebruikt afzonderlijke open-geadresseerde maps voor objectnummers en opgeloste object-aanwijzers

Laden, resetten, toevoegen, verwijderen, kopiëren, vervangen, verplaatsen, omkeren, wisselen, herordenen of reconciliëren van pagina's maakt de maps ongeldig

De volgende opzoeking herbouwt beide maps uit de huidige paginavolgorde, zodat de mutatiekost geen gretige indexreconstructie omvat

Prestaties en eigendom

De maps houden hun belastingsfactor onder de helft en bieden verwachte constante-tijd-opzoeking na een bouw van O(page count)

Een regressiepoort voert één miljoen opzoekingen uit na mutatie in een tabel van 100.000 pagina's en vereist p95-latentie onder 5 microseconden op beide ondersteunde Windows-doelen

De index slaat niet-eigendoms-object-aanwijzers op en wordt vrijgegeven met zijn THotPDF-instantie

Muteer een THotPDF-instantie niet gelijktijdig met paginaopzoeking, omdat mutatie van de geladen-documentgraaf geserialiseerd door de aanroeper blijft

Zie ook: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics