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