Polityki przyjmowania wpisów do cache w THotPDF
Steruje admission do cache niezależnie dla surowych skompresowanych zakresów źródłowych, zdekodowanych obrazów, skompilowanych display list stron i wyrenderowanych stron rastrowych
Deklaracje
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;
Domyślne limity
| Warstwa | Wpisy | Bajty łącznie | Na wpis | Adaptacyjny |
|---|---|---|---|---|
clkRawCompressed | 8 | 2 MiB | 256 KiB | Tak |
clkDecoded | 256 | 32 MiB | 16 MiB | Tak |
clkDisplayList | 64 | 64 MiB | 16 MiB | Tak |
clkRaster | 8 | 128 MiB | 64 MiB | Tak |
Zachowanie admission
Włączona polityka wymaga dodatnich limitów liczby wpisów, bajtów łącznie i na wpis, przy czym limit na wpis nie może przekraczać limitu łącznego
Zmiana jednej warstwy nigdy nie zmienia innej warstwy, a obniżenie limitu natychmiast usuwa wpisy najrzadziej używane, dopóki dotknięty cache nie zmieści się w limicie
Gdy włączone jest AdaptiveAdmission, kolejność najrzadszego użycia pozostaje szybką ścieżką recency, a czterodrożny ograniczony szkic częstotliwości porównuje nowego kandydata z każdą wymaganą ofiarą przed eksmisją
Zimniejszy kandydat omija retencję bez zakłócania bieżącego żądania, równa częstotliwość faworyzuje nowszego kandydata, a okresowe starzenie liczników pozwala zmienionemu working setowi wypierać historycznie gorące wpisy
Ustaw AdaptiveAdmission na False, aby zachować te same twarde limity przy czystym admission wg najrzadszego użycia
Wpisy większe niż MaxEntryBytes są używane dla bieżącej operacji, ale omijają retencję, dzięki czemu jeden duży zdekodowany obraz, display list albo wyrenderowana strona nie wypiera mniejszych, nadających się do ponownego użycia wpisów
Ustawienie Enabled na False z zerowymi limitami wyłącza retencję dla danej warstwy, a ResetCacheAdmissionPolicies przywraca wszystkie cztery wartości domyślne
Statystyki
THPDFCacheAdmissionStatistics zwraca aktywne limity, tryb adaptacyjny, bieżące zajęcie wpisów i bajtów, trafienia, chybienia, przyjęte i odrzucone admission, eksmisje z powodu pojemności, decyzje częstotliwościowe i cykle starzenia
Statystyki surowych zakresów opisują automatyczne źródło koalescujące tworzone przez LoadFromRandomAccessSource; jawnie dostarczony THPDFCoalescingRandomAccessSource zachowuje konfigurację wybraną przez wywołującego
Właściwości zgodności
RenderCacheCapacity aktualizuje limit wpisów warstwy rastrowej, a ImageCacheMaxBytes aktualizuje łączny limit bajtów zdekodowanych obrazów, przechodząc przez tę samą walidację polityki i natychmiastowe przycinanie
Zobacz też: Skalowalne wczytywanie, THPDFCoalescingRandomAccessSource, LoadFromRandomAccessSource