Chargement différé de l'arbre de pages
HotPDF peut conserver un arbre de pages PDF chargé ordinaire comme une table d'espaces réservés compacte et ne résoudre les pages individuelles que lorsqu'une API en a besoin pour la première fois
Activation
LazyPageTreeThreshold est défini par défaut à 4096 pages et s'applique aux arbres de pages valides dont la racine expose une structure /Count et /Kids utilisable
Définissez le seuil à 0 avant le chargement pour désactiver la gestion différée de l'arbre de pages
Les fichiers sous le seuil et les arbres malformés continuent via le chemin de récupération hâtive existant
Accès aléatoire
Le premier accès à une page suit les valeurs /Count du sous-arbre pour ignorer les branches non associées et résout les objets indirects via un index local au document à adressage ouvert
La page résolue est stockée dans son emplacement d'espace réservé, de sorte qu'un accès répété est un succès de cache direct
Les API usuelles de pages chargées matérialisent la page demandée de façon transparente, tandis que MaterializeLoadedPage permet aux appelants de préparer explicitement une page connue
Expansion complète et mutation
MaterializeAllLoadedPages développe l'arbre restant dans l'ordre canonique des pages
Les opérations qui ajoutent, suppriment, copient, remplacent, déplacent, inversent, échangent, reconstruisent ou enregistrent structurellement des pages chargées effectuent une expansion complète avant de muter ou sérialiser le graphe de pages
Cela préserve la sémantique de mutation et d'enregistrement existante tout en gardant l'accès orienté lecture proportionnel à la profondeur de branche parcourue
Télémétrie
GetLoadedPageTreeStatistics rapporte le stockage d'espaces réservés, les pages matérialisées, la profondeur et le travail de traversée, la capacité de l'index d'objets, l'activité de cache et les expansions complètes sans forcer la matérialisation
Un critère de régression couvre 100 000 pages avec un plafond de croissance de l'ensemble de travail de 256 Mio et un plafond de premier accès aléatoire de 500 ms sur les cibles Windows prises en charge
Voir aussi : LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics