Reverzní index stránek

Reverzní index stránek mapuje nepřímé objekty a zdroje zpět na stránky, které je používají

Chování vyhledávání

GetPageArrIndexForObjectNumber přijímá číslo objektu PDF, zatímco GetPageArrIndexForObject přijímá buď resolveovaný objekt stránky, nebo THPDFLink

Obě metody vrátí -1, když hodnota neidentifikuje aktuální stránku

Index se sestavuje a zneplatňuje podle změn grafu a poskytuje statistiky pro diagnostiku i cílené úpravy

Konstrukce a zneplatnění

Index se staví líně při prvním hledání a používá oddělené open-addressed mapy pro čísla objektů a resolveované ukazatele objektů

Načtení, reset, přidání, smazání, kopírování, nahrazení, přesun, obrácení, prohození, přeřazení či vysrovnání stránek zneplatní mapy

Další hledání obě mapy znovu postaví z aktuálního pořadí stránek, takže náklad mutace nezahrnuje vstřícný rebuild indexu

Výkonnost a vlastnictví

Mapy drží svůj load factor pod polovinou a poskytují očekávané hledání v konstantním čase po stavbě za O(počet stránek)

Regresní brána provede milion hledání po mutaci v tabulce 100 000 stránek a vyžaduje p95 latenci pod 5 mikrosekundami na obou podporovaných Windows cílech

Index ukládá nevlastnící ukazatele objektů a uvolní se spolu se svou instancí THotPDF

Nemutujte instanci THotPDF souběžně s hledáním stránek, protože mutace grafu načteného dokumentu zůstává serializovaná volajícím

Viz také: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics