Gesharde geladen-afbeeldingen-decodecache
HotPDF combineert onafhankelijk vergrendelde cachemetadata met exacte per-sleutel singleflight-coördinatie
Parallel werk
Zestien metadatashards beperken de concurrentie tijdens opzoeken, toelating en uitzetting terwijl dure afbeeldingsdecodering buiten cacheregrendels wordt uitgevoerd
Verzoeken voor verschillende sleutels kunnen gelijktijdig worden gedecodeerd en verzoeken voor dezelfde sleutel kiezen één eigenaar wiens voltooide resultaat met alle wachtende aanroepers wordt gedeeld
Globale grenzen
ImageCacheMaxBytes, het maximum aantal invoeren en de maximale omvang per invoer zijn van toepassing op de gecombineerde inhoud van alle shards
Trimmen over shards heen behoudt exacte geconfigureerde limieten en vermijdt het selecteren van de net ingevoegde shard terwijl een andere shard het uitzettingsverzoek kan vervullen
Eigendom en levensduur
AcquireLoadedImageStream en AcquireLoadedImageRegionAtResolution retourneren onveranderlijke referentiegetelde handles, zodat warme treffers en singleflight-wachters gedecodeerde opslag delen zonder pixels te kopiëren
Een handle blijft geldig na cache-uitzetting, -ongeldigmaking en documentvernietiging, terwijl CreateBitmapCopy een geïsoleerde aanroeper-gebonden bitmap biedt wanneer veranderlijke pixels vereist zijn
De verouderde gecachte-decodemethoden behouden hun aanroeper-gebonden TBitmap-contract door één kopie uit de handle te materialiseren
Telemetrie
GetImageDecodeConcurrencyInfo stelt live- en cumulatieve-concurrentiecounters bloot
De counters leggen handle-acquisities, compatibiliteitsbitmap-kopieën en gekopieerde bytes bloot naast parallelle-eigenaar- en singleflight-activiteit
Gerelateerde API's
IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo