Cache Infrastructure

HotPDF는 상한이 있는 메모리 캐싱과 재사용 폰트 subset, 렌더링 페이지용 영속 캐시를 제공합니다

가중치 메모리 캐시

HPDFCache의 THPDFWeightedCache는 TObject 값을 소유하고 AnsiString으로 인덱싱하며, 합산 가중치가 MaxBytes에 맞을 때까지 가장 오래된 값을 내보냅니다

Content keys

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

두 함수는 같은 콘텐츠에 대해 같은 소문자 SHA-256 16진수 키를 반환합니다

HPDFCacheKeyOfStream은 두 번째 전체 크기 바이트 배열을 할당하지 않고 해싱하며, seekable stream을 위치 0부터 읽고 원래 위치를 복원합니다

로드된 폰트 디코더 캐시

각 THotPDF 인스턴스는 성공적으로 파싱된 로드 폰트 디코더를 문서 범위 가중치 LRU 캐시에 유지합니다

샤딩된 로드 이미지 디코딩 캐시

각 THotPDF 인스턴스는 16개 독립 잠금 metadata shard로 로드 이미지 디코딩 재사용을 조정합니다

ICC transform 캐시

HPDFICC는 스레드 안전 64MiB 가중치 LRU 캐시로 완전한 source→sRGB transform을 공유하며, 설정 시 proof/output 프로파일도 포함합니다

영속 폰트 subset 캐시

EnableFontSubsetting이 활성인 동안 재사용 가능한 TrueType/OpenType subset 결과를 켜려면 THotPDF.FontSubsetCacheFolder를 설정합니다

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

영속 렌더링 페이지 캐시

THotPDF.RenderCacheFolder를 설정하면, 메모리 내 렌더링 페이지 캐시 다음 단계로 사용되는 디스크 티어가 활성화됩니다

소유권

관련 API