Índice inverso de objetos de página

HotPDF mantiene un índice inverso local al documento que va desde la identidad del objeto de página hasta la posición de página base cero

Comportamiento de búsqueda

GetPageArrIndexForObjectNumber acepta un número de objeto PDF, mientras que GetPageArrIndexForObject acepta un objeto de página resuelto o un THPDFLink

Ambos métodos devuelven -1 cuando el valor no identifica una página actual

Si una entrada malformada expone la misma identidad más de una vez, gana de forma determinista la primera página en orden de documento

Construcción e invalidación

El índice se construye perezosamente en la primera búsqueda y usa mapas open-addressed separados para números de objeto y punteros de objetos resueltos

Cargar, reiniciar, agregar, eliminar, copiar, reemplazar, mover, invertir, intercambiar, reordenar o reconciliar páginas invalida los mapas

La siguiente búsqueda reconstruye ambos mapas desde el orden de páginas actual, así que el costo de la mutación no incluye una reconstrucción ansiosa del índice

Rendimiento y propiedad

Los mapas mantienen su load factor por debajo de la mitad y ofrecen búsqueda en tiempo constante esperado tras una construcción de O(page count)

Una puerta de regresión ejecuta un millón de búsquedas después de mutar en una tabla de 100,000 páginas y exige una latencia p95 por debajo de 5 microsegundos en ambos objetivos Windows soportados

El índice almacena punteros de objetos sin propiedad y se libera junto con su instancia THotPDF

No mute una instancia THotPDF concurrentemente con búsquedas de páginas, porque la mutación del grafo del documento cargado sigue siendo serializada por el llamador

Vea también: GetPageArrIndexForObjectNumber, GetPageArrIndexForObject, GetPageReverseIndexStatistics