Szegmentált betöltött kép-dekódolási gyorsítótár
A HotPDF a függetlenül zárolt gyorsítótár-metaadatokat pontos kulcsonkénti singleflight-koordinációval kombinálja
Párhuzamos munka
Tizenhat metaadat-szegmens korlátozza a versengést a keresés, a beengedés a kilakoltatás során, míg a költséges képdekódolás a gyorsítótár-zárakon kívül fut
A különböző kulcsokra vonatkozó kérések egyidejűleg dekódolhatnak, és az azonos kulcsra vonatkozó kérések egy tulajdonost választanak, akinek a befejezett eredményét minden várakozó hívóval megosztják
Globális korlátok
Az ImageCacheMaxBytes, a maximális bejegyzésszám és a maximális bejegyzésenkénti méret az összes szegmens egyesített tartalmára vonatkozik
A szegmensek közötti metszés megőrzi a pontos konfigurált korlátokat, és elkerüli az éppen beszúrt szegmens kiválasztását, ha egy másik szegmens kielégítheti a kilakoltatási kérést
Tulajdonlás és élettartam
Az AcquireLoadedImageStream és az AcquireLoadedImageRegionAtResolution megváltoztathatatlan, hivatkozásszámlált kezelőket ad vissza, így a meleg találatok és a singleflight-várakozók a pixelek másolása nélkül osztják meg a dekódolt tárolót
Egy kezelő a gyorsítótár-kilakoltatás, az érvénytelenítés a dokumentum-megsemmisítés után is érvényes marad, míg a CreateBitmapCopy elkülönített, hívó-tulajdonú bitképet biztosít, ha változtatható pixelekre van szükség
Az örökölt gyorsítótárazott dekódolási metódusok megtartják hívó-tulajdonú TBitmap szerződésüket azáltal, hogy a kezelőből egy másolatot materializálnak
Telemetria
A GetImageDecodeConcurrencyInfo élő és kumulatív egyidejűségi számlálókat tesz elérhetővé
A számlálók a párhuzamos tulajdonos- és singleflight-aktivitás mellett kezelő-beszerzéseket, kompatibilitási bitkép-másolatokat és másolt bájtokat is elérhetővé tesznek
Kapcsolódó API-k
IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo