Carregamento preguiçoso de árvore de páginas
O HotPDF pode reter uma árvore de páginas PDF carregada comum como uma tabela de espaço reservado compacta e resolver páginas individuais apenas quando uma API precisar delas pela primeira vez
Ativação
LazyPageTreeThreshold tem como padrão 4096 páginas e se aplica a árvores de páginas válidas cuja raiz expõe uma estrutura /Count e /Kids utilizável
Defina o limite como 0 antes do carregamento para desabilitar o tratamento preguiçoso de árvore de páginas
Arquivos abaixo do limite e árvores malformadas continuam pelo caminho de recuperação ansioso existente
Acesso aleatório
O primeiro acesso a uma página segue os valores /Count da subárvore para pular ramos não relacionados e resolve objetos indiretos por meio de um índice de endereçamento aberto local ao documento
A página resolvida é armazenada em seu slot de espaço reservado, de modo que o acesso repetido é um acerto direto de cache
APIs comuns de página carregada materializam a página solicitada de forma transparente, enquanto MaterializeLoadedPage permite que os chamadores preparem uma página conhecida explicitamente
Expansão completa e mutação
MaterializeAllLoadedPages expande a árvore restante em ordem canônica de páginas
Operações que adicionam, excluem, copiam, substituem, movem, invertem, trocam, reconstroem ou salvam páginas carregadas estruturalmente realizam expansão completa antes de mutar ou serializar o grafo de páginas
Isso preserva a semântica existente de mutação e salvamento enquanto mantém o acesso orientado à leitura proporcional à profundidade do ramo percorrido
Telemetria
GetLoadedPageTreeStatistics relata armazenamento de espaço reservado, páginas materializadas, profundidade e trabalho de travessia, capacidade do índice de objetos, atividade de cache e expansões completas sem forçar a materialização
Um portão de regressão cobre 100.000 páginas com um teto de crescimento de conjunto de trabalho de 256 MiB e um teto de 500 ms para o primeiro acesso aleatório em alvos Windows suportados
Veja também: LazyPageTreeThreshold, MaterializeLoadedPage, MaterializeAllLoadedPages, GetLoadedPageTreeStatistics