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

LagAntalBytes i altPr. elementAdaptiv
clkRawCompressed82 MiB256 KiBJa
clkDecoded25632 MiB16 MiBJa
clkDisplayList6464 MiB16 MiBJa
clkRaster8128 MiB64 MiBJa

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