Í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