THotPDF Cache Admission Policies

Керує прийняттям кешу незалежно для сирих стиснутих діапазонів джерела, декодованих зображень, компільованих списків відмальовування сторінок і відрендерених растрових сторінок

Оголошення

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;

Типові обмеження

LayerEntriesTotal bytesPer entryAdaptive
clkRawCompressed82 MiB256 KiBYes
clkDecoded25632 MiB16 MiBYes
clkDisplayList6464 MiB16 MiBYes
clkRaster8128 MiB64 MiBYes

Поведінка прийняття

Увімкнена політика вимагає додатних меж записів, загальних байтів і байтів на запис, а межа на запис не може перевищувати межу загальних байтів

Зміна одного шару ніколи не змінює інший шар, а зниження межі негайно видаляє записи, до яких зверталися найдавніше, доки відповідний кеш не вміститься

З увімкненим AdaptiveAdmission порядок найдавнішого використання залишається швидким шляхом актуальності, а обмежений частотний ескіз із чотирма напрямами порівнює нового кандидата з кожним обов'язковим кандидатом на вилучення перед витісненням

Холодніший кандидат обходить збереження, не турбуючи поточний запит, рівна частота віддає перевагу новішому кандидату, а періодичне старіння лічильників дає змогу зміненому робочому набору замінювати історичні гарячі записи

Установіть AdaptiveAdmission у False, щоб зберегти ті самі жорсткі межі з чистим прийняттям за принципом найдавнішого використання

Записи, більші за MaxEntryBytes, використовуються для поточної операції, але минають збереження, не даючи одному великому декодованому зображенню, списку відмальовування чи відрендереній сторінці витісняти менші повторно використовувані записи

Установлення Enabled у False із нульовими межами вимикає збереження для цього шару, а ResetCacheAdmissionPolicies відновлює всі чотири типові налаштування

Статистика

THPDFCacheAdmissionStatistics повертає активні межі, адаптивний режим, поточну зайнятість за записами та байтами, влучення, промахи, прийняті й відхилені додавання, витіснення за потужністю, рішення частоти та цикли старіння

Статистика сирих діапазонів описує автоматичне джерело, що зливається, створене LoadFromRandomAccessSource; явно наданий THPDFCoalescingRandomAccessSource зберігає вибране користувачем налаштування

Властивості сумісності

RenderCacheCapacity оновлює межу растрових записів, а ImageCacheMaxBytes оновлює межу загальних байтів декодованих зображень через той самий шлях перевірки політики та негайного підрізання

Див. також: Scalable Loading, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource