Renderingdiagnostiek en bewerkingstelemetrie

HotPDF onderscheidt weergegeven-pagina-cache-items door elke voor de aanroeper zichtbare toestand die paginapixels kan veranderen en stelt begrensde diagnostiek bloot wanneer paginainhoud niet volledig kan worden weergegeven

Toestandsbewuste cache-varianten

THotPDF.RenderLoadedPageToBitmapCached sleutelt geheugenitems op pagina, DPI, effectieve optionele-inhoud-zichtbaarheid, THotPDF.RenderColourIntent en THotPDF.RenderFallbackPolicy

De persistente cache gebruikt dezelfde toestands-digest, terwijl diagnosticum-producerende terugvalmodi alleen-in-geheugen blijven, zodat een schijf-hit geen overgeslagen-objectberichten kan verliezen

Het wijzigen van een optionele-inhoudsgroep selecteert een andere variant in plaats van de vorige bitmap te verwijderen, zodat het terugschakelen van een laag of kleurintentie eerder werk kan hergebruiken

Kleurintentie

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

rciDocument honoreert elke ri-operator van de inhoudsstroom en blijft de standaard

De vier expliciete waarden overschrijven de intensie-selectie van de inhoudsstroom en worden toegepast op daaropvolgende ICCBased-vul- en -lijnconversies

Terugvalbeleid

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

THotPDF.GetLastRenderFallbackDiagnostics retourneert de behouden set, terwijl THotPDF.ClearLastRenderFallbackDiagnostics deze wist; cached-report-modus-items behouden hun diagnostische set, zodat een geheugencache-hit dezelfde renderingsvolledigheidsinformatie retourneert als de oorspronkelijke weergave

Geünificeerde bewerkingstelemetrie

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 retourneert een THPDFOperationTelemetry-record met wandklok-tijd, huidige-thread-CPU-tijd, geheugen, toewijzing, proces-I/O, filterdecode, cache, object-aantal, succes- en annuleringsmetrieken

Documentladen, synchrone en cached-paginawergave, progressieve-weergave-slices, selectieve stroomoptimalisatie en parallelle afbeeldingsoptimalisatie publiceren dezelfde recordvorm

PeakMemoryBytes is een draagbare documentbewerking-schatting in plaats van de werkset van het besturingssysteem, zodat deze stabiel blijft over hosts en geladen bronbytes, weergegeven bitmap-items, decoded-afbeelding-cachegewicht en piek-filterketen-opslag omvat

PeakProcessMemoryBytes is de grootste bemonsterde proceswerkset, terwijl AllocationCount de grootste bemonsterde toename is van gelijktijdig levende Delphi-geheugenmanager-blokken ten opzichte van de bewerkingsstart in plaats van een levenslang toewijzingstotaal

CPUTimeMicroseconds meet de aanroepende thread, terwijl ReadIOBytes, WriteIOBytes en OtherIOBytes proces-brede tellerdelta's zijn en daarom gelijktijdig werk in hetzelfde proces kunnen omvatten

DecodeInputBytes is gecomprimeerde invoer, DecodeOutputBytes is laatste filterketen-uitvoer en DecodedBytes is geaggregeerd werk over elke filterfase; DecodeExpansionPermille deelt de uiteindelijke uitvoer door de invoer, met 1000 die 1x voorstelt

ScheduledMemoryBytes is de beweringstoelating-schatting, MemorySchedulerWaitMilliseconds legt wachtrijtijd vast en MemorySchedulerDelayed onderscheidt wachtende toelating van het zonder-toewijzing snelle pad

Geheugen- en toewijzingspieken worden bemonsterd op bewerkingsgrenzen, filterketen-voltooiing, progressieve slices en annuleringscheckpoints, zodat ze operationele signalen met lage overhead zijn in plaats van instructie-niveau-profiler-sporen

Gerelateerde API's