Cache limitado de streams de objetos

Streams de referência cruzada carregados podem indexar membros compactados sem reter cada contêiner /Type /ObjStm decodificado na memória

Limite de bytes e despejo

ObjectStreamCacheMaxBytes define o orçamento de contêineres decodificados e assume o padrão de 64 MiB

Quando uma inserção cruza o orçamento, contêineres inativos são despejados individualmente em ordem de menos recentemente usado, enquanto o contêiner que atende atualmente a uma visão de analisador permanece protegido até que essa visão seja fechada

Um único contêiner maior que o limite pode, portanto, permanecer residente durante sua análise ativa, mas os bytes retidos convergem para o limite configurado imediatamente depois

Membros recarregáveis

O despejo preserva índices de número de objeto e deslocamentos de membro validados

Uma resolução posterior de membro reabre o stream de contêiner original, reaplica a descriptografia do documento e os filtros de stream e analisa o membro solicitado por meio da visão de fatia de cópia zero existente

Defina o limite como zero para não reter contêineres decodificados entre resoluções de membro

Telemetria

GetLoadedObjectStreamCacheInfo relata o limite configurado, bytes decodificados atuais e de pico, contagens de despejo e recarregamento, acertos e erros de cache de membro e atividade de fatia de cópia zero

Veja também: ObjectStreamCacheMaxBytes, GetLoadedObjectStreamCacheInfo, Fatias de stream de objetos de cópia zero