Caché acotada de flujos de objetos

Los flujos de referencias cruzadas cargados pueden indexar miembros comprimidos sin conservar en memoria cada contenedor /Type /ObjStm decodificado

Límite de bytes y expulsión

ObjectStreamCacheMaxBytes establece el presupuesto de contenedores decodificados y tiene como valor predeterminado 64 MiB

Cuando una inserción cruza el presupuesto, los contenedores inactivos se expulsan individualmente en orden de uso menos reciente mientras el contenedor que atiende actualmente una vista de analizador permanece protegido hasta que esa vista se cierra

Un único contenedor mayor que el límite puede, por tanto, residir durante su análisis activo, pero los bytes conservados convergen al límite configurado inmediatamente después

Miembros recargables

La expulsión preserva los índices de número de objeto y los desplazamientos de miembro validados

Una resolución de miembro posterior reabre el flujo de contenedor original, vuelve a aplicar el descifrado del documento y los filtros de flujo y analiza el miembro solicitado mediante la vista de rebanada de copia cero existente

Establezca el límite en cero para no conservar contenedores decodificados entre resoluciones de miembro

Telemetría

GetLoadedObjectStreamCacheInfo informa del límite configurado, de los bytes decodificados actuales y máximos, de los recuentos de expulsión y recarga, de los aciertos y fallos de caché de miembro y de la actividad de rebanadas de copia cero

Véase también: ObjectStreamCacheMaxBytes, GetLoadedObjectStreamCacheInfo, Zero-Copy Object-Stream Slices