THotPDF:s cacheinträdesprinciper

Styr cacheinträde oberoende för råa komprimerade källintervall, avkodade bilder, kompilerade sidvisningslistor och återgivna rastersidor

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

LagerPosterTotalt antal bytePer postAdaptiv
clkRawCompressed82 MiB256 KiBJa
clkDecoded25632 MiB16 MiBJa
clkDisplayList6464 MiB16 MiBJa
clkRaster8128 MiB64 MiBJa

Inträdesbeteende

En aktiverad princip kräver positiva gränser för poster, totalt antal byte och per post, och gränsen per post får inte överstiga gränsen för totalt antal byte

Att ändra ett lager ändrar aldrig ett annat lager, och att sänka en gräns tar omedelbart bort minst nyligen använda poster tills den berörda cachen ryms

Med AdaptiveAdmission aktiverat förblir minst nyligen använda ordning den snabba återkommande sökvägen medan en fyrvägs avgränsad frekvensskiss jämför en ny kandidat med varje krävd offer innan utstötning

En kallare kandidat kringgår kvarhållning utan att störa den aktuella begäran, lika frekvens gynnar den nyare kandidaten och periodisk räknaråldring låter en förändrad arbetssats ersätta historiskt heta poster

Ställ in AdaptiveAdmission på False för att behålla samma hårda gränser med rent minst nyligen använda inträde

Poster större än MaxEntryBytes används för den aktuella operationen men kringgår kvarhållning, vilket förhindrar att en stor avkodad bild, visningslista eller återgiven sida tränger undan återanvändbara mindre poster

Att ställa in Enabled på False med nollgränser inaktiverar kvarhållning för det lagret, medan ResetCacheAdmissionPolicies återställer alla fyra standardvärden

Statistik

THPDFCacheAdmissionStatistics returnerar de aktiva gränserna, adaptivt läge, aktuell post- och bytebeläggning, träffar, missar, accepterade inträden, avvisade inträden, kapacitetsutstötningar, frekvensbeslut och åldringscykler

Statistik för råa intervall beskriver den automatiska sammanslagningskällan som skapas av LoadFromRandomAccessSource; en explicit angiven THPDFCoalescingRandomAccessSource behåller sin anroparvalskonfiguration

Kompatibilitetsegenskaper

RenderCacheCapacity uppdaterar rasterpostgränsen och ImageCacheMaxBytes uppdaterar gränsen för totalt antal byte för avkodade bilder genom samma policyvalidering och omedelbara trimningssökväg

Se även: Skalbar inläsning, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource