THotPDF Cache-toelatingsbeleid

Regelt cachetoelating onafhankelijk voor ruwe gecomprimeerde bronreeksen, gedecodeerde afbeeldingen, gecompileerde paginadisplaylists en gerenderde rasterpagina's

Declaraties

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;

Standaardlimieten

LaagItemsTotaal bytesPer itemAdaptief
clkRawCompressed82 MiB256 KiBJa
clkDecoded25632 MiB16 MiBJa
clkDisplayList6464 MiB16 MiBJa
clkRaster8128 MiB64 MiBJa

Toelatingsgedrag

Een ingeschakeld beleid vereist positieve limieten voor items, totale bytes en per item, en de limiet per item mag de limiet voor totale bytes niet overschrijden

Het wijzigen van één laag verandert nooit een andere laag, en het verlagen van een limiet verwijdert onmiddellijk minst-recent-gebruikte items totdat de betreffende cache past

Met ingeschakelde AdaptiveAdmission blijft de minst-recent-gebruikte volgorde het snelle recentheidspad, terwijl een viervoudig begrensde frequentieschets elke nieuwe kandidaat vergelijkt met elk vereist slachtoffer vóór verwijdering

Een kouder kandidaat omzeilt retentie zonder de huidige aanvraag te verstoren, gelijke frequentie bevoordeelt de nieuwere kandidaat, en periodieke tellerveroudering laat een gewijzigde werkset historische hete items vervangen

Stel AdaptiveAdmission in op False om dezelfde harde grenzen te behouden met pure minst-recent-gebruikte toelating

Items groter dan MaxEntryBytes worden gebruikt voor de huidige bewerking maar omzeilen retentie, waardoor één grote gedecodeerde afbeelding, displaylist of gerenderde pagina herbruikbare kleinere items niet kan verdringen

Het instellen van Enabled op False met nul-limieten schakelt retentie voor die laag uit, terwijl ResetCacheAdmissionPolicies alle vier standaardwaarden herstelt

Statistieken

THPDFCacheAdmissionStatistics retourneert de actieve limieten, adaptieve modus, huidige item- en bytebezetting, treffers, missers, geaccepteerde toelatingen, afgewezen toelatingen, capaciteitsverwijderingen, frequentiebeslissingen en verouderingscycli

Ruwe-reeksstatistieken beschrijven de automatische coalescerende bron die is gemaakt door LoadFromRandomAccessSource; een expliciet geleverde THPDFCoalescingRandomAccessSource behoudt de door de aanroeper geselecteerde configuratie

Compatibiliteitseigenschappen

RenderCacheCapacity werkt de rasteritemlimiet bij en ImageCacheMaxBytes werkt de totale-bytelimiet voor gedecodeerde afbeeldingen bij via dezelfde beleidsvalidatie en onmiddellijke trimroute

Zie ook: Schaalbaar laden, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource