Caché de decodificación de imágenes cargadas fragmentada

HotPDF combina metadatos de caché con bloqueo independiente con la coordinación exacta de una sola solicitud por clave

Trabajo en paralelo

Dieciséis fragmentos de metadatos limitan la contención durante la búsqueda, la admisión y la expulsión mientras la costosa decodificación de imágenes se ejecuta fuera de los bloqueos de caché

Las solicitudes de claves diferentes pueden decodificarse de forma concurrente y las solicitudes de la misma clave eligen un propietario cuyo resultado completado se comparte con todos los llamadores en espera

Límites globales

ImageCacheMaxBytes, el recuento máximo de entradas y el tamaño máximo por entrada se aplican al contenido combinado de todos los fragmentos

El recorte entre fragmentos conserva los límites configurados exactos y evita seleccionar el fragmento recién insertado mientras otro fragmento puede satisfacer la solicitud de expulsión

Propiedad y vida útil

AcquireLoadedImageStream y AcquireLoadedImageRegionAtResolution devuelven identificadores inmutables con recuento de referencias, por lo que los aciertos en caliente y los solicitantes en espera de una sola solicitud comparten el almacenamiento decodificado sin copiar píxeles

Un identificador permanece válido después de la expulsión de caché, la invalidación y la destrucción del documento, mientras que CreateBitmapCopy proporciona un mapa de bits aislado propiedad del llamador cuando se requieren píxeles mutables

Los métodos de decodificación en caché heredados conservan su contrato TBitmap propiedad del llamador materializando una copia a partir del identificador

Telemetría

GetImageDecodeConcurrencyInfo expone contadores de concurrencia en vivo y acumulados

Los contadores exponen las adquisiciones de identificadores, las copias de mapa de bits de compatibilidad y los bytes copiados además de la actividad de propietario en paralelo y de una sola solicitud

APIs relacionadas

IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo