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;
Типові обмеження
| Layer | Entries | Total bytes | Per entry | Adaptive |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Yes |
clkDecoded | 256 | 32 MiB | 16 MiB | Yes |
clkDisplayList | 64 | 64 MiB | 16 MiB | Yes |
clkRaster | 8 | 128 MiB | 64 MiB | Yes |
Поведінка прийняття
Увімкнена політика вимагає додатних меж записів, загальних байтів і байтів на запис, а межа на запис не може перевищувати межу загальних байтів
Зміна одного шару ніколи не змінює інший шар, а зниження межі негайно видаляє записи, до яких зверталися найдавніше, доки відповідний кеш не вміститься
З увімкненим AdaptiveAdmission порядок найдавнішого використання залишається швидким шляхом актуальності, а обмежений частотний ескіз із чотирма напрямами порівнює нового кандидата з кожним обов'язковим кандидатом на вилучення перед витісненням
Холодніший кандидат обходить збереження, не турбуючи поточний запит, рівна частота віддає перевагу новішому кандидату, а періодичне старіння лічильників дає змогу зміненому робочому набору замінювати історичні гарячі записи
Установіть AdaptiveAdmission у False, щоб зберегти ті самі жорсткі межі з чистим прийняттям за принципом найдавнішого використання
Записи, більші за MaxEntryBytes, використовуються для поточної операції, але минають збереження, не даючи одному великому декодованому зображенню, списку відмальовування чи відрендереній сторінці витісняти менші повторно використовувані записи
Установлення Enabled у False із нульовими межами вимикає збереження для цього шару, а ResetCacheAdmissionPolicies відновлює всі чотири типові налаштування
Статистика
THPDFCacheAdmissionStatistics повертає активні межі, адаптивний режим, поточну зайнятість за записами та байтами, влучення, промахи, прийняті й відхилені додавання, витіснення за потужністю, рішення частоти та цикли старіння
Статистика сирих діапазонів описує автоматичне джерело, що зливається, створене LoadFromRandomAccessSource; явно наданий THPDFCoalescingRandomAccessSource зберігає вибране користувачем налаштування
Властивості сумісності
RenderCacheCapacity оновлює межу растрових записів, а ImageCacheMaxBytes оновлює межу загальних байтів декодованих зображень через той самий шлях перевірки політики та негайного підрізання
Див. також: Scalable Loading, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource