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

LayerEntriesTotal octețiPer intrareAdaptive
clkRawCompressed82 MiB256 KiBYes
clkDecoded25632 MiB16 MiBYes
clkDisplayList6464 MiB16 MiBYes
clkRaster8128 MiB64 MiBYes

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