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