PDFium Delphi Component Docs

คุณสมบัติ CacheGovernorStatistics

Component: TPdf  ·  Unit: PDFium
คืน snapshot ที่สอดคล้องกันของการใช้ไบต์ การ pin และ telemetry การจอง ของ cache governor ระดับ instance

Syntax

property CacheGovernorStatistics: TPdfCacheGovernorStatistics; // read only

 

type TPdfCacheGovernorStatistics = record
  MaxBytes: Int64;
  StoredBytes: Int64;
  PeakStoredBytes: Int64;
  PinnedBytes: Int64;
  EntryCount: Integer;
  ReservationCount: Int64;
  TouchCount: Int64;
  EvictionCount: Int64;
  RejectionCount: Int64;
end;

MaxBytesเพดานที่ตั้งไว้ มีค่าเท่ากับ CacheBudgetBytes
StoredBytesผลรวมไบต์ที่วัดได้ของ entry ที่ยังเก็บอยู่ทั้งหมดในตอนนี้
PeakStoredBytesค่าสูงสุดที่ StoredBytes เคยไปถึงตั้งแต่สร้าง instance
PinnedBytesส่วนของไบต์ที่เก็บอยู่ซึ่งถูก pin โดย entry ที่ pin อยู่ ขณะนี้คือ parsed page scene ที่ active
EntryCountจำนวน entry ที่เก็บอยู่รวมทุก cache ที่ร่วมอยู่
ReservationCountจำนวนสะสมของการเพิ่มข้อมูลเข้า cache ที่ยอมรับ
TouchCountจำนวนสะสมของการรีเฟรชตามแบบ least-recently-use หนึ่งครั้งต่อ cache hit บน entry ที่เก็บอยู่
EvictionCountจำนวนสะสมของ entry ที่ถูกทิ้งเพื่อให้การใช้งานอยู่ในงบ
RejectionCountจำนวนสะสมของการเพิ่มข้อมูลที่ถูกปฏิเสธ เพราะงบเป็นศูนย์, ตัว entry เดี่ยวใหญ่เกิน MaxBytes หรือไม่มีอะไรให้ไล่ออกได้

Description

record นี้ประกาศไว้ในหน่วย FPdfCache และสะท้อนสถานะของ governor ส่วนตัวที่อธิบายไว้ในหน้า CacheGovernor ค่าทั้งหมดถูกเก็บภายใต้ lock ของ governor การอ่านหนึ่งครั้งจึงได้มุมมองที่สอดคล้องกันแม้จะมี thread อื่นกำลัง render หรืออ่านหน้าอยู่ก็ตาม

snapshot ครอบคลุมเฉพาะ cache entry ของไลบรารีที่เก็บไว้ สำเนา bitmap และสำเนา snapshot ที่ผู้เรียกเป็นเจ้าของไม่ถูกนับในงบ การอ่าน stream ที่ถอดรหัสแล้วก็ยังเป็นแบบชั่วคราวและคงขีดจำกัดต่อการเรียกแบบเข้มงวดเดิม

ตัวนับทั้งหมดสะสมตลอดอายุของ instance TPdf การเปลี่ยนความจุ การล้าง cache และการโหลดเอกสารใหม่จะไม่ทำให้ค่าเหล่านี้หาย

Remarks

นับเป็น eviction เฉพาะเมื่อแรงกดดันจากงบทำให้ entry ถูกทิ้งเท่านั้น การปล่อย entry เพราะหน้าของมันถูกแก้ไขหรือมีการล้าง cache อย่างชัดเจน ไม่ถือเป็น eviction

เมื่อ governor ใช้ไม่ได้ getter จะคืน record ที่เป็นศูนย์ทุกฟิลด์ตามค่าเริ่มต้น

Example

Stats := Pdf.CacheGovernorStatistics;
if Stats.PeakStoredBytes > Pdf.CacheBudgetBytes div 2 then
  LogCachePressure(Stats.StoredBytes, Stats.EvictionCount);

See Also

CacheBudgetBytes, CacheGovernor, ThumbnailCacheStatistics, FPdfCache