THotPDF-innleggelsespolicyer for hurtigbuffer

Styrer hurtigbufferinnleggelse uavhengig for rå komprimerte kildeområder, dekodede bilder, kompilerte sidevisningslister og gjengitte raster-sider

Deklarasjoner

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;

Standardgrenser

LagOppføringerTotale bytePer oppføringAdaptiv
clkRawCompressed82 MiB256 KiBJa
clkDecoded25632 MiB16 MiBJa
clkDisplayList6464 MiB16 MiBJa
clkRaster8128 MiB64 MiBJa

Innleggelsesoppførsel

En aktivert policy krever positive grenser for oppføringer, totale byte og per oppføring, og grensen per oppføring må ikke overstige grensen for totale byte

Å endre ett lag endrer aldri et annet lag, og å senke en grense fjerner umiddelbart minst nylig brukte oppføringer til det berørte hurtigbufferen får plass

Med AdaptiveAdmission aktivert forblir minst-nylig-brukt-rekkefølgen den raske nyhetsbanen, mens en firedelt avgrenset frekvensskisse sammenligner en ny kandidat med hver nødvendige offer før utkastelse

En kaldere kandidat omgår bevaring uten å forstyrre den gjeldende forespørselen, lik frekvens favoriserer den nyere kandidaten, og periodisk telleraldring lar et endret arbeidssett erstatte historiske varme oppføringer

Sett AdaptiveAdmission til False for å beholde de samme harde grensene med ren minst-nylig-brukt-innleggelse

Oppføringer større enn MaxEntryBytes brukes for den gjeldende operasjonen, men omgår bevaring, noe som hindrer ett stort dekodet bilde, en visningsliste eller en gjengitt side i å fortrenge gjenbrukbare mindre oppføringer

Å sette Enabled til False med nullgrenser deaktiverer bevaring for det laget, mens ResetCacheAdmissionPolicies gjenoppretter alle fire standardene

Statistikk

THPDFCacheAdmissionStatistics returnerer de aktive grensene, adaptiv modus, gjeldende oppførings- og bytebelegg, treff, bom, aksepterte innleggelser, avviste innleggelser, kapasitetsutkastelser, frekvensbeslutninger og aldringssykluser

Råområdestatistikk beskriver den automatiske sammenføyningskilden som opprettes av LoadFromRandomAccessSource; en eksplisitt levert THPDFCoalescingRandomAccessSource beholder sin kallervalgte konfigurasjon

Kompatibilitetsegenskaper

RenderCacheCapacity oppdaterer rasteroppføringsgrensen, og ImageCacheMaxBytes oppdaterer grensen for totale byte for dekodede bilder gjennom samme policyvalidering og umiddelbare trimmingsbane

Se også: Skalerbar innlasting, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource