THotPDF cache-admissionspolitikker
Styrer cache-admission uafhængigt for rå komprimerede kildeområder, afkodede billeder, kompilerede side-displaylister og gengivede rastersider
Deklarationer
THPDFCacheLayerKind = (clkRawCompressed, clkDecoded,
clkDisplayList, clkRaster);
THPDFCacheAdmissionPolicy = record
Enabled: boolean;
AdaptiveAdmission: boolean;
MaxEntries: Integer;
MaxTotalBytes: Int64;
MaxEntryBytes: Int64;
end;
THPDFCacheAdmissionStatistics = record
Enabled: boolean;
AdaptiveAdmission: boolean;
MaxEntries: Integer;
MaxTotalBytes: Int64;
MaxEntryBytes: Int64;
EntryCount: Integer;
CurrentBytes: Int64;
HitCount: Int64;
MissCount: Int64;
AdmissionCount: Int64;
RejectionCount: Int64;
EvictionCount: Int64;
FrequencyAdmissionCount: Int64;
FrequencyRejectionCount: Int64;
FrequencyAgingCount: Int64;
end;
procedure ResetCacheAdmissionPolicies;
procedure SetCacheAdmissionPolicy(Kind: THPDFCacheLayerKind;
const Policy: THPDFCacheAdmissionPolicy);
function GetCacheAdmissionPolicy(Kind: THPDFCacheLayerKind;
out Policy: THPDFCacheAdmissionPolicy): boolean;
function GetCacheAdmissionStatistics(Kind: THPDFCacheLayerKind;
out Statistics: THPDFCacheAdmissionStatistics): boolean;
Standardgrænser
| Lag | Antal | Bytes i alt | Pr. element | Adaptiv |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Ja |
clkDecoded | 256 | 32 MiB | 16 MiB | Ja |
clkDisplayList | 64 | 64 MiB | 16 MiB | Ja |
clkRaster | 8 | 128 MiB | 64 MiB | Ja |
Adfærd for admission
En aktiveret politik kræver positive grænser for antal elementer, samlede bytes og bytes pr. element, og grænsen pr. element må ikke overstige den samlede bytegrænse
Ændring af ét lag berører aldrig et andet lag, og sænkes en grænse, fjernes mindst-senest-anvendte elementer med det samme, indtil den berørte cache atter er inden for grænsen
Med AdaptiveAdmission aktiveret forbliver least-recently-used-rækkefølgen den hurtige recency-sti, mens en fire-vejs, afgrænset frequency sketch sammenligner en ny kandidat med hver eneste offer, der skal ud, før der udsmides
En koldere kandidat bypasser fastholdelsen uden at forstyrre den aktuelle forespørgsel, ens frequency favoriserer den nyere kandidat, og periodisk tælleraldring lader et ændret working set erstatte historiske hot-elementer
Sæt AdaptiveAdmission til False for at beholde de samme hårde grænser med ren least-recently-used-admission
Elementer større end MaxEntryBytes bruges til den aktuelle operation, men bypasser fastholdelsen, så ét stort afkodet billede, én displayliste eller én gengivet side ikke fortrænger genanvendelige mindre elementer
Sættes Enabled til False med nulgrænser, deaktiveres fastholdelsen for det pågældende lag, mens ResetCacheAdmissionPolicies gendanner alle fire standardværdier
Statistik
THPDFCacheAdmissionStatistics returnerer de aktive grænser, adaptiv tilstand, nuværende antal elementer og byteforbrug, treffere, missere, accepterede admissions, afviste admissions, kapacitetsudsmidninger, frequency-beslutninger og aldringscyklusser
Statistik for rå områder beskriver den automatiske coalescing-kilde, som LoadFromRandomAccessSource opretter; en eksplicit angivet THPDFCoalescingRandomAccessSource beholder den konfiguration, kalderen har valgt
Kompatibilitetsegenskaber
RenderCacheCapacity opdaterer antalsgrænsen for raster-elementer, og ImageCacheMaxBytes opdaterer den samlede bytegrænse for afkodede billeder gennem samme politikvalidering og den umiddelbare beskæringssti
Se også: Skalerbar og tilfældig adgang PDF-indlæsning, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource