Politici de admitere în cache THotPDF
Controlează admiterea în cache independent pentru intervalele brute comprimate ale sursei, imaginile decodate, listele de afișare compilate ale paginilor și paginile raster randate
Declarations
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;
Limite implicite
| Layer | Entries | Total octeți | Per intrare | Adaptive |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Yes |
clkDecoded | 256 | 32 MiB | 16 MiB | Yes |
clkDisplayList | 64 | 64 MiB | 16 MiB | Yes |
clkRaster | 8 | 128 MiB | 64 MiB | Yes |
Comportament de admitere
O politică activată necesită limite pozitive pentru intrări, octeți totali și per-intrare, iar limita per-intrare nu trebuie să depășească limita de octeți totali
Modificarea unui strat nu modifică niciodată alt strat, iar scăderea unei limite elimină imediat intrările cel mai puțin recent utilizate până când cache-ul afectat încape
Cu AdaptiveAdmission activat, ordinea cel mai puțin recent utilizat rămâne calea rapidă de recență, în timp ce o schiță de frecvență mărginită pe patru căi compară un candidat nou cu fiecare victimă necesară înainte de eliminare
Un candidat mai rece ocolește reținerea fără a deranja cererea curentă, frecvența egală favorizează candidatul mai nou, iar îmbătrânirea periodică a contoarelor permite unui set de lucru schimbat să înlocuiască intrările istorice fierbinți
Setați AdaptiveAdmission la False pentru a păstra aceleași limite stricte cu admitere pură cel mai puțin recent utilizat
Intrările mai mari decât MaxEntryBytes sunt folosite pentru operația curentă, dar ocolesc reținerea, împiedicând o imagine decodată mare, o listă de afișare sau o pagină randată să înlocuiască intrări mai mici reutilizabile
Setarea Enabled la False cu limite zero dezactivează reținerea pentru acel strat, în timp ce ResetCacheAdmissionPolicies restaurează toate cele patru valori implicite
Statistics
THPDFCacheAdmissionStatistics returnează limitele active, modul adaptiv, ocuparea curentă de intrări și octeți, hit-uri, miss-uri, admiteri acceptate, admiteri respinse, eliminări de capacitate, decizii de frecvență și cicluri de îmbătrânire
Statisticile pentru intervale brute descriu sursa de coalescere automată creată de LoadFromRandomAccessSource; un THPDFCoalescingRandomAccessSource furnizat explicit își păstrează configurația selectată de apelant
Proprietăți de compatibilitate
RenderCacheCapacity actualizează limita de intrări raster, iar ImageCacheMaxBytes actualizează limita de octeți totali pentru imaginile decodate prin aceeași cale de validare a politicii și de tăiere imediată
Vezi și: Scalable Loading, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource