Chẩn đoán render và telemetry thao tác

HotPDF phân biệt các mục cache trang đã render theo mọi trạng thái có thể thấy bởi bên gọi có thể thay đổi pixel trang và phơi bày các chẩn đoán có giới hạn khi nội dung trang không thể được render hoàn chỉnh

Các biến thể cache nhận biết trạng thái

THotPDF.RenderLoadedPageToBitmapCached khóa các mục bộ nhớ theo trang, DPI, khả năng hiển thị nội dung tùy chọn hiệu lực, THotPDF.RenderColourIntent và THotPDF.RenderFallbackPolicy

Cache bền vững dùng cùng bản tóm tắt trạng thái, trong khi các chế độ dự phòng tạo chẩn đoán vẫn chỉ ở bộ nhớ để một lần trúng đĩa không thể làm mất các báo cáo đối tượng bị bỏ qua

Thay đổi một nhóm nội dung tùy chọn chọn một biến thể khác thay vì xóa bitmap trước đó, nên chuyển một lớp hoặc ý định màu trở lại có thể tái sử dụng công việc trước đó

Ý định màu

PDF.RenderColourIntent := rciRelativeColorimetric;
Bitmap := PDF.RenderLoadedPageToBitmapCached(0, 144);

rciDocument tôn trọng từng toán tử ri của content stream và vẫn là mặc định

Bốn giá trị tường minh ghi đè việc chọn ý định content stream và được áp cho các chuyển đổi fill và stroke ICCBased tiếp theo

Chính sách dự phòng

PDF.RenderFallbackPolicy := rfpReport;
PDF.RenderFallbackDiagnosticLimit := 256;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
Diagnostics := PDF.GetLastRenderFallbackDiagnostics;

THotPDF.GetLastRenderFallbackDiagnostics trả về tập được giữ lại, trong khi THotPDF.ClearLastRenderFallbackDiagnostics xóa nó; các mục chế độ báo cáo được cache giữ lại tập chẩn đoán của chúng, nên một lần trúng cache bộ nhớ trả về cùng thông tin đầy đủ render như lần render gốc

Telemetry thao tác hợp nhất

if PDF.GetLastOperationTelemetry(Info) then
begin
  WriteLn(Info.OperationName);
  WriteLn(Info.ElapsedMilliseconds);
  WriteLn(Info.CPUTimeMicroseconds);
  WriteLn(Info.PeakProcessMemoryBytes);
  WriteLn(Info.MemorySchedulerWaitMilliseconds);
  WriteLn(Info.DecodeExpansionPermille);
end;

THotPDF.GetLastOperationTelemetry trả về một bản ghi THPDFOperationTelemetry chứa thời gian tường, thời gian CPU luồng hiện tại, bộ nhớ, cấp phát, I/O tiến trình, giải mã filter, cache, số đối tượng, thành công và hủy bỏ

Nạp tài liệu, render trang đồng bộ và có cache, các lát render tiến dần, tối ưu hóa stream chọn lọc và tối ưu hóa ảnh song song công bố cùng hình dạng bản ghi

PeakMemoryBytes là một ước tính thao tác tài liệu di động thay vì tập làm việc tiến trình của hệ điều hành, nên nó ổn định trên các host và bao gồm byte nguồn đã nạp, các mục bitmap đã render, trọng lượng cache ảnh đã giải mã và lưu trữ chuỗi filter đỉnh

PeakProcessMemoryBytes là tập làm việc tiến trình được lấy mẫu lớn nhất, trong khi AllocationCount là mức tăng được lấy mẫu lớn nhất của các khối quản lý bộ nhớ Delphi đang tồn tại đồng thời so với lúc bắt đầu thao tác thay vì tổng cấp phát suốt đời

CPUTimeMicroseconds đo luồng gọi, trong khi ReadIOBytes, WriteIOBytes và OtherIOBytes là các delta đếm toàn tiến trình và do đó có thể bao gồm công việc đồng thời trong cùng tiến trình

DecodeInputBytes là đầu vào nén, DecodeOutputBytes là đầu ra chuỗi filter cuối cùng, và DecodedBytes là công việc tổng hợp qua mọi giai đoạn filter; DecodeExpansionPermille chia đầu ra cuối cho đầu vào, với 1000 đại diện 1x

ScheduledMemoryBytes là ước tính tiếp nhận thao tác, MemorySchedulerWaitMilliseconds ghi thời gian xếp hàng, và MemorySchedulerDelayed phân biệt tiếp nhận xếp hàng với đường nhanh không cấp phát

Đỉnh bộ nhớ và cấp phát được lấy mẫu tại các ranh giới thao tác, hoàn tất chuỗi filter, các lát tiến dần và các điểm kiểm tra hủy bỏ, nên chúng là các tín hiệu vận hành chi phí thấp thay vì dấu vết profiler mức lệnh

API liên quan