Sharded-dekodebuffer for lastet bilde

HotPDF kombinerer uavhengig låst cache-metadata med eksakt per-nøkkel-singleflight-koordinering

Parallelt arbeid

Seksten metadata-shards begrenser konkurranse under oppslag, opptakelse og utslytting mens kostbar bilde-dekoding kjører utenfor cache-låsene

Forespørsler for forskjellige nøkler kan avkodes samtidig, og forespørsler for samme nøkkel velger én eier hvis fullførte resultat deles med alle ventende kallere

Globale grenser

ImageCacheMaxBytes, maksimalt antall oppføringer og maksimal størrelse per oppføring gjelder for det kombinerte innholdet i alle shards

Triming på tvers av shards bevarer de eksakte konfigurerte grensene og unngår å velge den nettopp innsatte sharden mens en annen shard kan tilfredsstille utslyttingsforespørselen

Eierskap og levetid

AcquireLoadedImageStream og AcquireLoadedImageRegionAtResolution returnerer uforanderlige referansetellende håndtak, så varme treff og singleflight-ventere deler avkodet lagring uten å kopiere piksler

Et håndtak forblir gyldig etter cache-utslytting, invalidering og dokument-ødeleggelse, mens CreateBitmapCopy gir en isolert kallereid bitmap når mutbare piksler kreves

De eldre bufrede dekodemetedene beholder sin kallereide TBitmap-kontrakt ved å materialisere én kopi fra håndtaket

Telemetri

GetImageDecodeConcurrencyInfo viser live og kumulative samtidighets-tellere

Tellerne viser håndtak-opptakelser, kompatibilitet-bitmap-kopier og kopierte bytes i tillegg til parallell eier- og singleflight-aktivitet

Relaterte API-er

IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo