Carga perezosa del árbol de páginas
HotPDF puede conservar un árbol de páginas PDF cargado común como una tabla compacta de placeholders y resolver cada página individual solo cuando una API la necesita por primera vez
Activación
LazyPageTreeThreshold tiene un valor predeterminado de 4096 páginas y 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 perezoso del árbol de páginas
Los archivos por debajo del umbral y los árboles malformados continúan por la ruta de recuperación ansiosa existente
Acceso aleatorio
El primer acceso a una página sigue los valores /Count del subárbol para saltar ramas no relacionadas y resuelve los objetos indirectos mediante un índice open-addressed local al documento
La página resuelta se guarda en su slot de placeholder, así que los accesos repetidos son un hit directo de cache
Las APIs comunes de páginas cargadas materializan la página solicitada de forma transparente, mientras que MaterializeLoadedPage permite al llamador preparar explícitamente una página conocida
Expansión completa y mutación
MaterializeAllLoadedPages expande el resto del árbol en el orden canónico de páginas
Las operaciones que estructuralmente agregan, eliminan, copian, reemplazan, mueven, invierten, intercambian, reconstruyen o guardan páginas cargadas realizan la expansión completa antes de mutar o serializar el grafo de páginas
Esto preserva la semántica existente de mutación y guardado, al tiempo que mantiene el acceso orientado a lectura proporcional a la profundidad de la rama recorrida
Telemetría
GetLoadedPageTreeStatistics informa el almacenamiento de placeholders, las páginas materializadas, la profundidad y el trabajo de recorrido, la capacidad del índice de objetos, la actividad del cache y las expansiones completas, sin forzar la materialización
Una puerta de regresión cubre 100,000 páginas con un techo de crecimiento de working set de 256 MiB y un techo de 500 ms para el primer acceso aleatorio en los objetivos Windows soportados
Vea también: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics