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