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;
rfpIgnoregiữ hành vi dễ dãi cũrfpReportghi lại các toán tử không được hỗ trợ, tài nguyên thiếu, đối tượng không hợp lệ, lỗi giải mã, giới hạn đệ quy và loại đối tượng không được hỗ trợrfpStrictném tại dự phòng đầu tiên ngoài một phần tương thíchBXvàEXTHotPDF.RenderFallbackDiagnosticLimitgiới hạn các chẩn đoán được giữ lạiTHotPDF.LastRenderFallbackDroppedCountbáo cáo các chẩn đoán bị bỏ sau giới hạn có giới hạn đã cấu hình
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