รีเคิร์ด THPDFGraphTransactionStatistics
สแนปช็อตสถานะของ stack ทำ transaction กราฟแบบ copy-on-write: แฟล็ก active, ความลึกการซ้อน, จำนวน snapshot กับ object ที่เพิ่ม และหน่วยความจำ snapshot ทั้งแบบค้างในหน่วยความจำ แบบถูก spill ออก และค่าสูงสุด
การประกาศ
THPDFGraphTransactionStatistics= record
Active: boolean;
Depth: Integer;
SnapshotCount: Integer;
AddedObjectCount: Integer;
ResidentSnapshotBytes: Int64;
SpilledSnapshotBytes: Int64;
PeakResidentSnapshotBytes: Int64;
end;
ยูนิต
HPDFDoc
ฟิลด์
| ฟิลด์ | วัตถุประสงค์ |
|---|---|
Active | true ขณะ transaction ที่เปิดด้วย BeginGraphTransaction ยังไม่ถูกปิด |
Depth | จำนวน transaction frame ที่ซ้อนอยู่ใน stack ตอนนี้ |
SnapshotCount | จำนวน snapshot ของ object แบบ copy-on-write ที่ถือไว้รวมทุก frame |
AddedObjectCount | จำนวน indirect object ที่เพิ่มตั้งแต่ transaction ชั้นนอกสุดเริ่ม นับเทียบกับจำนวน object ตอนต้นของมัน |
ResidentSnapshotBytes | จำนวนไบต์ snapshot ที่ค้างอยู่ในหน่วยความจำรวมทุก frame ตอนนี้ |
SpilledSnapshotBytes | จำนวนไบต์ snapshot ที่กลไก spill ย้ายออกจากหน่วยความจำไป |
PeakResidentSnapshotBytes | ยอด snapshot ในหน่วยความจำสูงสุดที่เคยเห็น รายงานให้แม้ตอนนี้ไม่มี transaction ทำงานอยู่ |
หมายเหตุการใช้งาน
- ขอค่าจาก
THotPDF.GetGraphTransactionStatisticsระหว่างBeginGraphTransactionกับCommitGraphTransactionหรือRollbackGraphTransactionเพื่อดูต้นทุน rollback ที่บวมขึ้นเรื่อย ๆ - เมื่อ
Activeเป็นfalseตัวนับทุกตัวจะเป็นศูนย์ ยกเว้นPeakResidentSnapshotBytesที่ยังเก็บระดับสูงสุดครั้งล่าสุดไว้ - ใช้
ResidentSnapshotBytesบวกSpilledSnapshotBytesคำนวณเพดานหน่วยความจำสำหรับเซสชันแก้ไขยาว ๆ บนเอกสารใหญ่