รีเคิร์ด THPDFParserArenaStatistics
รายงาน telemetry ด้าน block, allocation, token และการ elide จาก arena allocator ของ parser
การประกาศ
THPDFParserArenaStatistics= record
BlockSize: Integer;
RetainedBlockCount: Integer;
RetainedBytes: Int64;
PeakUsedBytes: Int64;
AllocationCount: Int64;
BytesRequested: Int64;
BlockAllocationCount: Int64;
ReusedAllocationCount: Int64;
ResetCount: Int64;
TokenCount: Int64;
TemporaryObjectElisionCount: Int64;
end;
ยูนิต
HPDFDoc
ฟิลด์
| ฟิลด์ | วัตถุประสงค์ |
|---|---|
BlockSize | ความจุของ arena block หนึ่งบล็อกตามที่ตั้งไว้ตอนสร้าง (ค่าเริ่มต้น 65536) |
RetainedBlockCount | จำนวนบล็อกที่ arena ถือไว้เพื่อใช้ซ้ำอยู่ในตอนนี้ |
RetainedBytes | ผลรวมความจุของทุกบล็อกที่ถือไว้ |
PeakUsedBytes | จำนวนไบต์ของ arena ที่ถูกใช้สูงสุดระหว่าง session |
AllocationCount | จำนวนคำขอ allocation ที่ arena จัดการให้ |
BytesRequested | จำนวนไบต์ที่ขอไปทั้งหมดจากทุกการ allocation |
BlockAllocationCount | จำนวนบล็อกใหม่ที่หยิบมาจาก memory manager |
ReusedAllocationCount | การ allocation ที่แก้ไขจากพื้นที่ว่างภายในบล็อกที่มีอยู่แล้ว |
ResetCount | จำนวนครั้งที่ mark ของ arena ถูก rollback หรือ arena ถูก reset |
TokenCount | token ของ parser ที่ load session เจ้าของนับไว้ ค่าถูกเติมโดย THotPDF หลังจาก arena รายงาน |
TemporaryObjectElisionCount | object ชั่วคราวของ parser ที่ถูก elide ระหว่าง session ค่านี้ก็ถูกเติมโดย THotPDF เช่นกัน |
หมายเหตุการใช้งาน
- ดึง snapshot ด้วย
GetLastParserArenaStatisticsซึ่งคืน false เมื่อไม่มี arena session ทำงานอยู่ และจะเคลียร์ค่าใน record เป็นศูนย์ - เทียบ
PeakUsedBytesกับRetainedBytesเพื่อประเมินว่า arena กัน memory สำรองไว้ระหว่าง session มากแค่ไหน TokenCountและTemporaryObjectElisionCountมาจากตัวนับของ session และจะถูกเคลียร์เป็นศูนย์โดยBeginParserArenaSession