| Type | Description |
|---|---|
EPdfCacheError | รายงานงบ ขนาด entry และ participant ที่ไม่ถูกต้อง |
TPdfCacheKind | จำแนก page scene (pckPageScene), tile (pckTile), thumbnail (pckThumbnail), system font (pckSystemFont), ข้อมูลโครงสร้าง (pckStructure), text snapshot (pckTextSnapshot), page-object snapshot (pckPageObjectSnapshot), stream ที่ถอดรหัสแล้ว (pckDecodedStream) และ entry ของแอปพลิเคชัน (pckApplication) |
TPdfCacheGovernorStatistics | รายงานงบ ไบต์ที่เก็บอยู่ปัจจุบันและจุดสูงสุด ไบต์ที่ pin อยู่ จำนวน entry การจอง การแตะ การ evict และการปฏิเสธ ฟิลด์ประกอบด้วย MaxBytes, StoredBytes, PeakStoredBytes, PinnedBytes, EntryCount, ReservationCount, TouchCount, EvictionCount, RejectionCount |
TPdfCacheParticipant | รับ callback EvictCacheEntry แบบ synchronous หลังจาก governor ตัด token ออกจากการบัญชีแล้ว |
TPdfCacheGovernorEntry | เรกคอร์ดบัญชีภายในที่เปิดเผยไว้เพื่อความเข้ากันได้ของคอมไพเลอร์ ฟิลด์ประกอบด้วย Token, Participant, Kind, StoredBytes, LastUsed และ Pinned |
TPdfCacheGovernor | ทะเบียน token แบบ thread-safe ที่มีลำดับ least-recently-used เดียวระดับโกลบอลข้าม participant และชนิด cache |
| Member | Description |
|---|---|
Create(AMaxBytes: Int64) | สร้าง governor ที่มีงบไบต์ไม่ติดลบ |
Destroy | ล้าง entry ที่ลงทะเบียนไว้ก่อนปล่อยสถานะการประสานงาน |
Reserve | จองไบต์และคืน token ที่เป็นบวก โดย evict entry LRU ระดับโกลบอลเมื่อทำได้ หรือคืนศูนย์เมื่อ entry ไม่พอที่ |
Touch | ย้าย token ที่มีอยู่ไปตำแหน่งใหม่ล่าสุด |
Release | ตัดการบัญชีของ token ออกโดยไม่เรียก eviction callback |
SetPinned | ป้องกันหรือปลดการป้องกัน entry ที่กำลังใช้ และตัดขนาดหลังเลิก pin |
Clear | ลบ token ทั้งหมดและขอให้ทุก participant ปล่อย entry ที่ตนเก็บไว้ |
Contains | ตรวจว่า token ยังคงลงทะเบียนอยู่หรือไม่ |
UsageForKind | คืนไบต์ที่เก็บอยู่ของ TPdfCacheKind หนึ่งชนิด |
EntryCountForKind | คืนจำนวน entry ที่ลงทะเบียนของ TPdfCacheKind หนึ่งชนิด |
Statistics | คืนสแนปชอต telemetry ที่ป้องกันด้วย lock |
MaxBytes | อ่านหรือเปลี่ยนงบรวม และตัด entry ที่ไม่ได้ pin ออกทันทีหลังลดลง |
governor ไม่เป็นเจ้าของ participant หรือข้อมูลที่ตนเก็บเลย
ทุก participant ต้องมีอายุยาวกว่า token ที่ลงทะเบียนทั้งหมด และต้องไม่ raise ออกจาก EvictCacheEntry
callback ทำงานแบบ synchronous โดยไม่ถือ lock ของ governor participant จึงเรียก Release สำหรับ token ที่เกี่ยวข้องได้อย่างปลอดภัย
entry ที่ pin อยู่อาจทำให้ StoredBytes เกินค่า MaxBytes ที่ลดลงชั่วคราว จนกว่าผู้ใช้สุดท้ายจะเลิก pin
FPDF_RENDER_LIMITEDIMAGECACHE ยังใช้ได้ผ่าน reLimitCache โดยบังคับขีดจำกัด image cache ต่อหน้าแบบ fixed ของ PDFium
PDFium ไม่มี public ABI สำหรับงบไบต์ของ cache ระดับโปรเซสที่ปรับได้หรืออ่านได้
governor จึงวัดวัตถุที่เก็บไว้ซึ่งเป็นของ PDFiumPas และใช้ค่าประมาณที่ระบุชัดเจนสำหรับ page scene ที่ parse แล้วซึ่งมองไม่เห็นข้างใน