THotPDF Cache Admission Policies

Riadi prijímanie do vyrovnávacej pamäte nezávisle pre surové komprimované rozsahy zdroja, dekódované obrázky, skompilované zoznamy vykresľovania stránok a vykreslené rastrové stránky

Deklarácie

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;

Predvolené limity

VrstvaPoložkyCelkové bajtyNa položkuAdaptívne
clkRawCompressed82 MiB256 KiBÁno
clkDecoded25632 MiB16 MiBÁno
clkDisplayList6464 MiB16 MiBÁno
clkRaster8128 MiB64 MiBÁno

Správanie prijímania

Povolená politika vyžaduje kladné limity položiek, celkových bajtov a bajtov na položku a limit na položku nesmie presiahnuť limit celkových bajtov

Zmena jednej vrstvy nikdy nezmení inú vrstvu a zníženie limitu okamžite odstráni najmenej nedávno použité položky, kým sa dotknutá vyrovnávacia pamäť nezmestí

Pri povolenom AdaptiveAdmission zostáva poradie najmenej nedávno použitých rýchlou cestou aktuálnosti, zatiaľ čo štvorcestný ohraničený frekvenčný náčrt porovná nového kandidáta s každým požadovaným obeťou pred vyradením

Chladnejší kandidát obíde uchovanie bez narušenia aktuálnej požiadavky, rovnaká frekvencia uprednostní novšieho kandidáta a periodické starnutie počítadiel umožní zmenenej pracovnej sade nahradiť historické horúce položky

Nastavte AdaptiveAdmission na False, aby sa zachovali rovnaké pevné hranice s čisto najmenej nedávno použitým prijímaním

Položky väčšie ako MaxEntryBytes sa použijú pre aktuálnu operáciu, ale obídu uchovanie, čím sa zabráni tomu, aby jeden veľký dekódovaný obrázok, zoznam vykresľovania alebo vykreslená stránka vytlačili opätovne použiteľné menšie položky

Nastavenie Enabled na False s nulovými limitmi vypne uchovanie pre túto vrstvu, zatiaľ čo ResetCacheAdmissionPolicies obnoví všetky štyri predvolené hodnoty

Štatistiky

THPDFCacheAdmissionStatistics vráti aktívne limity, adaptívny režim, aktuálne obsadenie položiek a bajtov, zásahy, chyby, prijaté prijatia, odmietnuté prijatia, vyradenia z kapacity, frekvenčné rozhodnutia a cykly starnutia

Štatistiky surových rozsahov opisujú automatický zlučovací zdroj vytvorený funkciou LoadFromRandomAccessSource; explicitne dodaný THPDFCoalescingRandomAccessSource si zachováva konfiguráciu vybranú volajúcim

Vlastnosti kompatibility

RenderCacheCapacity aktualizuje limit položiek rastra a ImageCacheMaxBytes aktualizuje limit celkových bajtov dekódovaných obrázkov cez rovnaké overenie politiky a okamžité orezanie

Pozri tiež: Škálovateľné načítavanie, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource