Carga diferida del árbol de páginas
HotPDF puede conservar un árbol de páginas PDF cargado ordinario como una tabla de marcadores de posición compacta y resolver páginas individuales solo cuando una API las necesita por primera vez
Activación
LazyPageTreeThreshold tiene un valor predeterminado de 4096 páginas y se aplica a árboles de páginas válidos cuya raíz expone una estructura /Count y /Kids utilizable
Establezca el umbral en 0 antes de cargar para deshabilitar el manejo diferido del árbol de páginas
Los archivos por debajo del umbral y los árboles malformados continúan por la ruta de recuperación anticipada existente
Acceso aleatorio
El primer acceso a una página sigue los valores /Count del subárbol para omitir ramas no relacionadas y resuelve los objetos indirectos mediante un índice de direccionamiento abierto local al documento
La página resuelta se almacena en su ranura de marcador de posición, por lo que el acceso repetido es un acierto directo de caché
Las APIs ordinarias de páginas cargadas materializan la página solicitada de forma transparente, mientras que MaterializeLoadedPage permite a los llamadores preparar una página conocida explícitamente
Expansión completa y mutación
MaterializeAllLoadedPages expande el árbol restante en orden de página canónico
Las operaciones que añaden, eliminan, copian, reemplazan, mueven, invierten, intercambian, reconstruyen o guardan páginas cargadas de forma estructural realizan una expansión completa antes de mutar o serializar el grafo de páginas
Esto conserva la semántica de mutación y guardado existente mientras mantiene el acceso orientado a lectura proporcional a la profundidad de la rama recorrida
Telemetría
GetLoadedPageTreeStatistics informa del almacenamiento de marcadores de posición, las páginas materializadas, la profundidad y el trabajo de recorrido, la capacidad del índice de objetos, la actividad de caché y las expansiones completas sin forzar la materialización
Una puerta de regresión cubre 100 000 páginas con un tope de crecimiento del conjunto de trabajo de 256 MiB y un tope de 500 ms para el primer acceso aleatorio en destinos Windows admitidos
Véase también: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics