Delt cache til afkodning af indlæste billeder

HotPDF kombinerer uafhængigt låste cachemetadata med præcis singleflight-koordinering pr nøgle

Parallelt arbejde

Seksten metadataafsnit begrænser konkurrence under opslag, optagelse og udsættelse, mens kostbar billedafkodning kører uden for cachelåse

Anmodninger om forskellige nøgler kan afkodes samtidigt, og anmodninger om samme nøgle vælger én ejer, hvis færdige resultat deles med alle ventende kaldere

Globale grænser

ImageCacheMaxBytes, the maximum entry count, and the maximum per-entry size gælder for det samlede indhold af alle afsnit

Trimning på tværs af afsnit bevarer præcise konfigurerede grænser og undgår at vælge det netop indsatte afsnit, mens et andet afsnit kan opfylde udsættelsesanmodningen

Ejerskab og levetid

AcquireLoadedImageStream and AcquireLoadedImageRegionAtResolution returnerer uforanderlige referencetalte handles, så varme træffere og singleflight-ventere deler afkodet lager uden at kopiere pixels

Et handle forbliver gyldigt efter cacheudsættelse, ugyldiggørelse og dokumentsletning, mens CreateBitmapCopy leverer et isoleret bitmap ejet af kalderen, når mutérbare pixels er nødvendige

De ældre cachelagte afkodningsmetoder bevarer deres TBitmap -kontrakt ejet af kalderen ved at materialisere én kopi fra handlet

Telemetri

GetImageDecodeConcurrencyInfo viser aktuelle og kumulative samtidighedstællere

Tællerne viser handlehentninger, kompatibilitetskopier af bitmap og kopierede bytes ud over parallel ejer- og singleflight-aktivitet

Relaterede API’er

IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo