Pagination de la table des références croisées
Quand la table de références croisées d’un document dépasse THotPDF.XRefMapPagingThreshold entrées (250 000 par défaut, environ 8 Mo en forme dense), la passe de chargement complet la range dans un THPDFXRefMapPager et libère le tableau dense, si bien que les grands documents cessent de retenir chaque entrée dans une table de records alignés
THPDFXRefMapPager
Le pager stocke un instantané trié de slots compactés de 24 octets (THPDFXRefMapSlot) : numéro d’objet, type d’entrée, génération 16 bits, offset et emplacement d’object stream. GetEntry répond par recherche binaire à travers une petite page de 64 entrées matérialisée en LRU, si bien que les recherches séquentielles décodent une page pour de nombreuses entrées ; CollectFreeEntries extrait l’ensemble libre par ordre de numéros d’objets pour la reconstruction des mises à jour incrémentales
Diagnostics et consommateurs
GetLoadedXRefMapPaged rapporte l’état paginé avec le nombre d’entrées, les octets d’instantané et les compteurs de hits et de misses de fenêtre ; la reconstruction de l’ensemble libre à l’enregistrement incrémental et la résolution indirecte de /Length des membres de flux matérialisés paresseusement passent par le pager, et mettre le seuil à 0 désactive totalement la pagination