快取基礎結構

HotPDF 為可重複使用的 intermediary 物件提供有界的加權記憶體快取,並提供已載入文件轉譯所使用的持續性已轉譯頁面快取

加權記憶體快取

HPDFCache 中的 THPDFWeightedCache 擁有 TObject 值,以 AnsiString 為它們建立索引,並在合計權重符合 MaxBytes 之前持續收回最久未使用的值

內容索引鍵

function HPDFCacheKeyOfBytes(const Bytes: TBytes): AnsiString;
function HPDFCacheKeyOfStream(Stream: TStream): AnsiString;

兩個函式對相同內容都會傳回相同的小寫 SHA-256 十六進位索引鍵

HPDFCacheKeyOfStream 在雜湊時不會配置第二個完整大小的位元組陣列,會從位置零讀取可搜尋的串流,並還原其原始位置

持續性已轉譯頁面快取

設定 THotPDF.RenderCacheFolder 即可啟用記憶體內已轉譯頁面快取之後所使用的磁碟層

分片式已載入影像解碼快取

每個 THotPDF 實例透過 16 個獨立鎖定的中繼資料分片,協調已載入影像的解碼重用

ICC 轉換快取

HPDFICC 透過 thread-safe 的 64 MiB 加權 LRU 快取共用完整的來源至 sRGB 轉換,設定時也包含 proof 與輸出 profile

持續化的字型子集快取

設定 THotPDF.FontSubsetCacheFolder 即可在 EnableFontSubsetting 啟用時重用 TrueType 與 OpenType 子集結果

PDF.EnableFontSubsetting := True;
PDF.FontSubsetCacheFolder := 'C:\ProgramData\MyApp\HotPDF\FontSubsets';
PDF.FontSubsetCacheMaxBytes := 256 * 1024 * 1024;

持續化的已轉譯頁面快取

設定 THotPDF.RenderCacheFolder 即可啟用記憶體內已轉譯頁面快取之後的磁碟層

擁有權

相關 API