THotPDF:s cacheinträdesprinciper
Styr cacheinträde oberoende för råa komprimerade källintervall, avkodade bilder, kompilerade sidvisningslistor och återgivna rastersidor
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
| Lager | Poster | Totalt antal byte | Per post | 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 |
Inträdesbeteende
En aktiverad princip kräver positiva gränser för poster, totalt antal byte och per post, och gränsen per post får inte överstiga gränsen för totalt antal byte
Att ändra ett lager ändrar aldrig ett annat lager, och att sänka en gräns tar omedelbart bort minst nyligen använda poster tills den berörda cachen ryms
Med AdaptiveAdmission aktiverat förblir minst nyligen använda ordning den snabba återkommande sökvägen medan en fyrvägs avgränsad frekvensskiss jämför en ny kandidat med varje krävd offer innan utstötning
En kallare kandidat kringgår kvarhållning utan att störa den aktuella begäran, lika frekvens gynnar den nyare kandidaten och periodisk räknaråldring låter en förändrad arbetssats ersätta historiskt heta poster
Ställ in AdaptiveAdmission på False för att behålla samma hårda gränser med rent minst nyligen använda inträde
Poster större än MaxEntryBytes används för den aktuella operationen men kringgår kvarhållning, vilket förhindrar att en stor avkodad bild, visningslista eller återgiven sida tränger undan återanvändbara mindre poster
Att ställa in Enabled på False med nollgränser inaktiverar kvarhållning för det lagret, medan ResetCacheAdmissionPolicies återställer alla fyra standardvärden
Statistik
THPDFCacheAdmissionStatistics returnerar de aktiva gränserna, adaptivt läge, aktuell post- och bytebeläggning, träffar, missar, accepterade inträden, avvisade inträden, kapacitetsutstötningar, frekvensbeslut och åldringscykler
Statistik för råa intervall beskriver den automatiska sammanslagningskällan som skapas av LoadFromRandomAccessSource; en explicit angiven THPDFCoalescingRandomAccessSource behåller sin anroparvalskonfiguration
Kompatibilitetsegenskaper
RenderCacheCapacity uppdaterar rasterpostgränsen och ImageCacheMaxBytes uppdaterar gränsen för totalt antal byte för avkodade bilder genom samma policyvalidering och omedelbara trimningssökväg
Se även: Skalbar inläsning, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource