Cache Infrastructure

HotPDF は、再利用可能な中間オブジェクト向けの上限付き重みメモリキャッシュと、読み込み済みドキュメントのレンダリングで使用される永続的なレンダリング済みページキャッシュを提供します

重み付きメモリキャッシュ

HPDFCache の THPDFWeightedCache は TObject 値を所有し、AnsiString でインデックス付けし、合計重みが MaxBytes に収まるまで最も長く使われていない値を退避させます

コンテンツキー

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

どちらの関数も、同じコンテンツに対しては同じ小文字の SHA-256 16 進キーを返します

HPDFCacheKeyOfStream は 2 つ目のフルサイズのバイト配列を確保せずにハッシュし、シーク可能なストリームを位置 0 から読み取り、元の位置を復元します

永続的なレンダリング済みページキャッシュ

各 THotPDF インスタンスは、パースに成功した読み込み済みフォントデコーダをドキュメント単位の重み付き LRU キャッシュに保持します

所有権

各 THotPDF インスタンスは、16 個の独立してロックされるメタデータシャードを通じて、読み込み済み画像デコードの再利用を調整します

ICC 変換キャッシュ

HPDFICC は、ソースから sRGB への完全な変換をスレッドセーフな 64 MiB の重み付き LRU キャッシュで共有します。設定されていれば proof 用および出力のプロファイルも含みます

永続フォントサブセットキャッシュ

EnableFontSubsetting が有効な間に再利用可能な TrueType / OpenType サブセット結果を有効化するには THotPDF.FontSubsetCacheFolder を設定します

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

永続レンダリングページキャッシュ

THotPDF.RenderCacheFolder を設定すると、メモリ内のレンダリング済みページキャッシュの後段にあたるディスク層が有効になります

シャード化されたロード済み画像のデコードキャッシュ

関連 API