Razdeljeni predpomnilnik dekodiranja naloženih slik
HotPDF združi neodvisno zaklenjene metapodatke predpomnilnika z natančno koordinacijo singleflight po ključih
Vzporedno delo
Šestnajst razdelkov metapodatkov omeji tekmovanje med poizvedbami, sprejemi in izseljevanji, medtem ko drago dekodiranje slik poteka zunaj zaklepov predpomnilnika
Zahteve za različne ključe lahko dekodirajo sočasno, zahteve za isti ključ pa izvolijo enega lastnika, katerega dokončani rezultat si delijo vsi čakajoči klicatelji
Globalne meje
ImageCacheMaxBytes, največje število vnosov in največja velikost na vnos veljajo za združeno vsebino vseh razdelkov
Obrezovanje med razdelki ohrani natančne konfigurirane omejitve in se izogne izbiri pravkar vstavljenega razdelka, medtem ko lahko drug razdelek izpolni zahtevo po izseljevanju
Lastništvo in življenjska doba
AcquireLoadedImageStream in AcquireLoadedImageRegionAtResolution vrneta nespremenljive ročaje s štetjem sklicev, zato si topli zadetki in čakalci singleflight delijo dekodirano shrambo brez kopiranja pikslov
Ročaj ostane veljaven po izseljevanju predpomnilnika, razveljavitvi in uničenju dokumenta, medtem ko CreateBitmapCopy zagotovi izolirano bitno sliko v lasti klicatelja, kadar so potrebni spremenljivi piksli
Stare metode dekodiranja s predpomnilnikom ohranijo svojo pogodbo TBitmap v lasti klicatelja z materializacijo ene kopije iz ročaja
Telemetrija
GetImageDecodeConcurrencyInfo izpostavi žive in kumulativne števce sočasnosti
Števci izpostavijo pridobitve ročajev, kopije bitnih slik za združljivost in kopirane bajte poleg vzporedne dejavnosti lastnikov in singleflight
Povezani API-ji
IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo