TPdfThumbnailCacheStatistics = record
EntryCount: Integer;
StoredBytes: Int64;
HitCount: Int64;
MissCount: Int64;
EvictionCount: Int64;
end;
EntryCount включає додатні бітові записи та кешовану відсутність необов'язкових вбудованих мініатюр
StoredBytes оцінює пам'ять бітових карт як ширина × висота × чотири байти та виключає нульбайтові негативні записи
Лічильники влучань, промахів і витіснень сукупні за життя екземпляра TPdf
property ThumbnailCacheMaxEntries: Integer; // default 64
property ThumbnailCacheMaxBytes: Int64; // default 64 MiB
Кеш утримує запис лише поки обидві стелі це дозволяють, і витісняє найменш нещодавно використані записи, коли будь-яка стеля зменшується
Установка будь-якої стелі в нуль вимикає утримання, залишаючи видобування та рендеринг доступними
Від'ємні значення породжують EPdfError
property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics;
Повторні виклики ExtractThumbnail і RenderPageThumbnail дають влучання й промахи під тим самим блокуванням рендерингу, що використовується рідним доступом до сторінок PDFium
Кожен успішний пошук бітової карти повертає глибоку копію у власності викликача, тож звільнення чи зміна не можуть вплинути на пізніше влучання
property ThumbnailRevision: Int64;
Значення просувається, коли вміст сторінки чи структура документа можуть зробити наявне прев'ю застарілим
TPdfThumbnailView спостерігає за цією редакцією та відкидає свої гарячі копії видимих сторінок перед перемалюванням відредагованого вмісту
procedure ClearThumbnailCache;
Вивільняє утримувані бітові та негативні записи, не змінюючи лімітів, сукупних лічильників, активної сторінки чи редакції вмісту документа
Відрендерені записи розрізняються за редакцією сторінки, номером сторінки, запитаним максимальним розміром, обертанням, опціями рендерингу, тлом і кожним полем TPdfColorScheme
Вбудовані мініатюри використовують окремий ключ джерела та кешують і декодовані бітові карти, і відсутність запису /Thumb сторінки
Редагування сторінки анулює цю сторінку, тоді як заміна документа та зміни дерева сторінок очищають усі утримувані мініатюри
var
Bitmap: TBitmap;
Stats: TPdfThumbnailCacheStatistics;
begin
Pdf.ThumbnailCacheMaxEntries := 128;
Pdf.ThumbnailCacheMaxBytes := Int64(96) * 1024 * 1024;
Bitmap := Pdf.RenderPageThumbnail(1, 180, 240);
try
Image1.Picture.Assign(Bitmap);
finally
Bitmap.Free;
end;
Stats := Pdf.ThumbnailCacheStatistics;
LogCache(Stats.EntryCount, Stats.HitCount, Stats.MissCount);
end;