Razdvojeni keš dekodiranja učitanih slika

HotPDF kombinuje nezavisno zaključane metapodatke keša sa tačnom singleflight koordinacijom po ključu

Paralelni rad

Šesnaest razdvojenih delova metapodataka ograničava nadmetanje tokom pretraživanja, prijema i izbacivanja dok skupo dekodiranje slika radi izvan zaključavanja keša

Zahtevi za različite ključeve mogu da se dekodiraju istovremeno, a zahtevi za isti ključ biraju jednog vlasnika čiji se dovršeni rezultat deli sa svim pozivaocima koji čekaju

Globalne granice

ImageCacheMaxBytes, maksimalni broj unosa i maksimalna veličina po unosu primenjuju se na kombinovani sadržaj svih razdvojenih delova

Podrezivanje preko razdvojenih delova čuva tačne konfigurisane limite i izbegava izbor tek umetnutog dela dok drugi deo može da zadovolji zahtev za izbacivanje

Vlasništvo i životni vek

AcquireLoadedImageStream i AcquireLoadedImageRegionAtResolution vraćaju nepromenljive ručke sa brojanjem referenci, tako da topli pogoci i singleflight čekanja dele dekodirano skladište bez kopiranja piksela

Ručka ostaje važeća nakon izbacivanja iz keša, poništavanja i uništavanja dokumenta, dok CreateBitmapCopy pruža izolovani bitmap u vlasništvu pozivaoca kada su potrebni promenljivi pikseli

Nasleđene metode keširanog dekodiranja zadržavaju svoj ugovor o TBitmap u vlasništvu pozivaoca materijalizovanjem jedne kopije iz ručke

Telemetrija

GetImageDecodeConcurrencyInfo izlaže žive i kumulativne brojače konkurentnosti

Brojači izlažu preuzimanja ručki, kopije bitmapa kompatibilnosti i kopirane bajtove pored paralelnog vlasnika i singleflight aktivnosti

Povezani API-ji

IHPDFDecodedBitmapHandle · AcquireLoadedImageStream · AcquireLoadedImageRegionAtResolution · THPDFImageDecodeConcurrencyInfo